题目描述
Give two positive integer c, n. You need to find a pair of integer (a,b) satisfy 1<=a,b<=n and the greatest common division of a and b is c.And you need to maximize the product of a and b
输入描述:
The first line has two positive integer c,n
输出描述:
Output the maximum product of a and b.
If there are no such a and b, just output -1
输入
2 4
输出
8
说明
a=2,b=4
备注:
1<=c,n<=10^9
题意:给定两个正整数c,n,求一个数对(a,b),满足1<=a,b<=n,且gcd(a,b)=c,要求输出最大的ab
思路:可以稍微推一下,首先gcd(a,b)=c,那么ab=r*t*c*c (r与c互素)。然后我们知道相邻的两个正整数(>2)一定互素。那么这样就取(n/c)与(n/c)+1就是最大,当然记得特判当n=c。
代码:
int main()
{
ll c,n,ans;
cin>>c>>n;
if(c>n) puts("-1");
else if(2*c>n) printf("%lld",c*c);
else if(c==n) printf("%lld\n",n*n);
else
{
ll x=n/c,y=(n/c)-1;
printf("%lld\n",x*y*c*c);
}
}