1 #include
2 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
",b);
21 }
22 return 0;
23 }
其實每一道題都會給我一些啟示吧算法最重要
自己一開始窮舉所有情況 if else if else最后還是wrong answer .....
遺漏或者錯誤在所難免
所以自己告訴自己,做題不用太急切.... 多考慮一種算法,也許或者只是一點小小的技巧 稍微多的分析一下。嗯
另外自己對算法時間估計不夠準(zhǔn)確
循環(huán)gcd時間不是太多 因為一般的數(shù)都會與2 3 5等素質(zhì)
并且這個gcd函數(shù)對(int n,int m) 沒有大小限制的
就算輸入一個2 3 4 5的公倍數(shù)也不算太大哪 太大就超過范圍了