题解 | #最简真分数#

最简真分数

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

// 最简真分数
// https://www.nowcoder.com/practice/1f1db273eeb745c6ac83e91ff14d2ec9
// Medium

#include <iostream>
#include <vector>

using namespace std;

bool gongyueshu(int a, int b){
    int r;
    int x = max(a, b);
    int y = min(a, b);
    while(true){
        r = x % y;
        if(r == 0){
            if(y == 1) return true;
            else return false;
        }
        x = y;
        y = r;
    }
    return 0;
}

int main(){
    int n;
    vector<int> vi;
    int x;
    while(cin >> n){
        if(n == 0) return 0;
        int num = 0;
        for(int i = 0; i < n; ++i){
            cin >> x;
            vi.push_back(x);
        }
        for(int i = 0; i < n - 1; ++i){
            for(int j = i+1; j < n; ++j){
                if(gongyueshu(vi[i], vi[j])){
                    num++;
                }
            }
        }
        cout << num << endl;
        vi.erase(vi.begin(), vi.end());
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
09-12 11:55
已编辑
湖南工商大学 Java
那一天的Java_J...:这种一堆问题的,别去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务