hdu-またGCDを見て 1097 ワード hdu-またGCD解題報告を参照Problem Description 3つの正の整数a,b,c(0 Input 最初の行にはnが入力され、n組のテストデータがあり、次のn行には、各行に2つの正の整数a,bが入力される. Output 対応するcを出力し、各テストデータが1行を占める. Sample Input 2 6 2 12 4 Sample Output 4 8 この問題に穴をあけられた.テーマを見終わって、私の最初の反応はc=2*b.を感じて、そしてすぐにそれを叩いて、結果はwrongになりました.その後、慣性思考が人を殺すことが分かった.a=12、b=2のとき、c=10だった.だからこの問題の解題の構想は、a/bの値を求めてからiを求めるべきで、(iは条件を満たす最小のa/bとの相互質の数でなければならない).互質、すなわちgcd(a/b,i)=1である.最後の結果はc=i*bである.#include<stdio.h> int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } int main() { int n,a,b,i,temp; scanf("%d",&n); while(n--) { scanf("%d %d",&a,&b); temp=a/b; for(i=2;;i++) { if(gcd(temp,i)==1) break; } printf("%d",i*b); } return 0; } WC 2010シーケンサ C言語計算プログラムの実行時間(ミリ秒/マイクロ秒まで)