lojml 2021-07-28 10:01 采纳率: 100%
浏览 108
已结题

c++ 呵呵 我又来问了

描述
定义:对于两个整数,如果它们的公约数只有1,就称这两个整数互质。

任务:给定n个互不相同的正整数,任取其中两个数,有多少种选法使得选出的两个数互质?

输入格式
第一行是一个正整数n(n<=1000)。

第二行是n个正整数Ai(在1至1000之间),相邻两数之间用空格隔开。

输出格式
一个整数,即互质数组合的个数。

样例输入
7
3 5 7 9 11 13 15
样例输出
17

  • 写回答

2条回答 默认 最新

  • 滑一下很开心 2021-07-28 10:33
    关注
    
    #include <iostream>
    using namespace std;
    
    int gys(int x, int y)
    {
        int z = y;
        while (x % y != 0)
        {
            z = x % y;
            x = y;
            y = z;
        }
        return z;
    }
    int main()
    {
        int n, count = 0;
        int a[1000];
        cin >> n;
        for (int i0 = 0; i0 < n; i0++)
            cin >> a[i0];
        for (int i = 0; i < n; i++)
            for (int j = i + 1; j < n; j++)
            {
                if (gys(a[i], a[j]) == 1)
                    count++;
            }
        cout << count << endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月5日
  • 已采纳回答 7月28日
  • 创建了问题 7月28日