View Code
1 #include2 int gcd(int n,int m) 3 { 4 return 0==m?n:gcd(m,n%m); 5 } 6 int main() 7 { 8 int num,a,b,c; 9 scanf("%d",&num);10 while(num--)11 {12 scanf("%d%d",&a,&c);13 int i;14 for(i=2;;i++)15 {16 b=c*i;17 if((gcd(a,b)==c)&&a!=b)18 break;19 }20 printf("%d\n",b);21 }22 return 0;23 }
其实每一道题都会给我一些启示吧
算法最重要
自己一开始穷举所有情况 if else if else最后还是wrong answer .....
遗漏或者错误在所难免
所以自己告诉自己,做题不用太急切.... 多考虑一种算法,也许或者只是一点小小的技巧 稍微多的分析一下。嗯
另外自己对算法时间估计不够准确
循环gcd时间不是太多 因为一般的数都会与2 3 5等素质
并且这个gcd函数对(int n,int m) 没有大小限制的
就算输入一个2 3 4 5的公倍数也不算太大哪 太大就超过范围了