题解 | #最简真分数#

最简真分数

https://www.nowcoder.com/practice/1f1db273eeb745c6ac83e91ff14d2ec9

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int GCD(int a , int b)
{
    if(b == 0)
    {
        return a ; 
    }
    return GCD(b , a %b);
}
int main() {
    int n ; 
    cin>>n ;
    vector<int> a ; 
    int tmp ; 
    while(cin>>tmp)
    {
        a.push_back(tmp) ; 
    }
    sort(a.begin() , a.end()) ; 
    int num = 0 ; 
    for(int i = 1 ; i < a.size() ; ++ i) // 先排序之后对 遍历所有的数,当前面的数小于 后面的数, 并且两个的最大公约数为1的时候就是最简真分数。 
        for(int j = 0 ; j <i ; ++ j)
        {
            if(GCD(a[i] , a[j]) == 1 )
            {
                num++ ; 
            }
        }
    cout<<num  ; 
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务