Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
7439 | 邓小龙 | 最简真分数 | C++ | Accepted | 10 MS | 268 KB | 676 | 2025-04-26 15:11:42 |
/*思路 遍历数组,寻找两个数,判断这两个数最大公约数是否为1 如果==1,那么真分数的个数+1 */ #include<bits/stdc++.h> using namespace std; int gcd(int x, int y){ //辗转相除法-欧几里得算法 int z=x%y; while(z!=0){ x=y; y=z; z=x%y; } return y; } int n,a[601],cnt; int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; //遍历数组,寻找两个数将所有的组合找出来 for(int i=1;i<n;i++){ for(int j=i+1;j<=n;j++){ if(gcd(a[i],a[j])==1) cnt++; } } cout<<cnt<<endl; return 0; }