int Gcd(int x, int y) { if(y == 0) return x; return Gcd(y, x % y); } void CoGcd(int m) { for(int i = 1; i <= m; i++) { for(int j = 1; j <= m; j++) { Gcd(i, j); } } }
给出m的值,进行t次询问,每次询问包含一对xi,yi。针对每次询问,输出整个程序执行过程当中,Gcd(xi, yi)被执行了多少次。
例如:m = 20,
Gcd(8,5)会被执行4次,对应的x, y值是
(8,5) (5,8) (13,8) (8,13),这4组x y,在调用Gcd时,会递归执行Gcd(8, 5)。
第一行:2个数,t和m,中间用空格分割。(1 <= t <= 200, 10 <= m <= 1e9)
后面t行:每行2个数xi, yi,中间用空格分割。(1 <= xi, yi <= 1e9)
输出共t行,对应t组询问的答案。
原题链接:http://www.51nod.com/Challenge/Problem.html#problemId=2583