这个哪提交错误
pta上的题。Sg认识到互质数很有用。若两个正整数的最大公约数为1,则它们是互质数。要求编写函数判断两个整数是否互质数。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试先输入1个整数n(1≤n≤100),再输入n行,每行有一对整数a、b(0<a,b<10^9)。
输出格式:
对于每组测试数据,输出有多少对互质数。
输入样例:
1
3
3 11
5 11
10 12
输出样例:
2
#include <stdio.h>
int gcd(int a, int b);
int main()
{
int T, n, a, b, i, j, count;
count = 0;
scanf("%d\n", &T);
for(i= 1; i<= T; i++){
scanf("%d\n", &n);
for(j= 1; j<= n; j++){
scanf("%d%d\n", &a, &b);
if(gcd(a, b)== 1){
count++;
}
}
}
printf("%d", count);
}
int gcd(int a, int b)
{
if(a%b== 0){
return b;
}else {
return gcd(b, a%b);
}
} int main()
{
int T, n, a, b, i, j, count;
count = 0;
scanf("%d", &T);////////////去掉\n
for(i= 1; i<= T; i++){
scanf("%d", &n);////////////
for(j= 1; j<= n; j++){
scanf("%d%d", &a, &b);///////////
if(gcd(a, b)== 1){
count++;
}
}
}
printf("%d", count);
} #include <stdio.h>
int gcd(int x , int y)
{
if(! y) return x ;
else return gcd(y , x % y) ;
}
int main(void)
{
int c , d , i , j , n , t ;
scanf("%d" , & t) ;
for(i = 0 ; i < t ; i ++) {
scanf("%d" , & n) ;
for(j = 0 ; j < n ; j ++) scanf("%d%d" , & d , & d) ;
}
for(i = 0 ; i < t ; i ++) for(c = j = 0 ; j < n ; j ++) if(gcd(d , d) == 1) c ++ ;
for(i = 0 ; i < t ; i ++) printf("%d\n" , c) ;
}
编译、运行实况:
D:\0002.Exercise\C>g++ -o x x.c
D:\0002.Exercise\C>x
1
3
3 11
5 11
10 12
2
D:\0002.Exercise\C>
页:
[1]