题解 | #最简真分数#

最简真分数

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

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <stack>
#include <map>
using namespace std;

int a[2000];

//将问题转换为求最大公约数
int gcd(int a, int b) {
    if (b == 0) return a;
    else return gcd(b, a % b);
}

int main() {
    int n, i, j, sum;
    while (scanf("%d", &n) != EOF && n != 0) {
        for (i = 0; i < n; i++) scanf("%d", &a[i]);
        for (i = 0, sum = 0; i < n; i++) {
            for (j = i + 1; j < n; j++) { //如果最大公约数为1,说明不能再化简了
                if (gcd(a[i], a[j]) == 1) sum++;
            }
        }
        printf("%d\n", sum);
    }
    return 0;
}

全部评论

相关推荐

10-21 23:48
蚌埠坦克学院
csgq:可能没hc了 昨天一面完秒挂
点赞 评论 收藏
分享
10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务