
#include<bits/stdc++.h>
using namespace std;
int gcd(int x,int y)
{
if(y==0) return x;
return gcd(y,x%y);
}
int main()
{
int i,j,a,b,ansA,ansB,l;
scanf("%d%d%d",&a,&b,&l);
ansA=l;ansB=1;
for(i=1;i<=l;i++)
for(j=1;j<=l;j++)
if(gcd(i,j)==1&&i*b>=j*a&&i*ansB<j*ansA)
{
ansA=i;
ansB=j;
}
printf("%d %d",ansA,ansB);
return 0;
}
考虑一个分数\frac{i}{j}ji:
- 如果\frac{i}{j}<\frac{a}{b}ji<ba那么ii应当+1+1
- 如果\frac{i}{j}\ge\frac{a}{b}ji≥ba那么jj应当+1+1
初始时i=j=1i=j=1,i>ni>n或j>nj>n时停止(nn是题目中的ll)
ansans即为所有满足\frac{i}{j}\ge\frac{a}{b}ji≥ba的\frac{i}{j}ji的最小值
浙公网安备 33010602011771号