The Unsolvable Problem
给出n,求满足a+b=n,a和b最小公倍数的最大值是多少...
把n取半,看拆分的两半有木有公约数...
#include <cstdio> #include <iostream> using namespace std; int gcd(int a,int b) { return (b==0?a:gcd(b,a%b)); } int main() { int n,T; scanf("%d",&T); while (T--) { scanf("%lld",&n); __int64 k=n/2; __int64 s; while (gcd(k,(n-k))!=1) k--; s=k*(n-k); printf("%I64d\n",s); } return 0; }