题解 | #最简真分数#
https://www.nowcoder.com/practice/1f1db273eeb745c6ac83e91ff14d2ec9
终止条件很怪,没给,是scanf返回值为EOF的时候。
GCD算法:
最后b为0时返回a即可。
| a | b |
| b | a%b |
| ... | ... |
| a | 0 |
a为1,最大公因数为1,互质;否则不互质。
#include<cstdio>
int a[600];
// a>b
int gcd(int a, int b){
if(b==0) return a;
return gcd(b, a%b);
}
int main(){
int n;
while(scanf("%d", &n)!=EOF){
int count = 0;
for(int i=0;i<n;++i){
scanf("%d", &a[i]);
}
for(int i=0;i<n;++i){
for(int j=i+1;j<n;++j){
if(gcd(a[j],a[i])>1) continue;
++count;
}
}
printf("%d\n", count);
}
return 0;
}
快手成长空间 767人发布