题解 | #最简真分数#

最简真分数

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

// 直接模拟
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

bool isTrue(int x, int y){
    int k = min(x,y);
    for(int i=2; i<=k; i++){
        if(x%i==0 && y%i==0)
            return false;
    }
    return true;
}

int main() {
   int n;
   cin >> n;
   int sum = 0;
   vector<int> nums(n);
   for(int i=0; i<n; i++)
        cin >> nums[i];
    sort(nums.begin(), nums.end());
    for(int i=0; i<n-1; i++){
        for(int j=i+1; j<n; j++){
            if(isTrue(nums[i], nums[j]))
                sum++;
        }
    }
    cout << sum << endl;
    
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

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