描述
定义:对于两个整数,如果它们的公约数只有1,就称这两个整数互质。
任务:给定n个互不相同的正整数,任取其中两个数,有多少种选法使得选出的两个数互质?
输入格式
第一行是一个正整数n(n<=1000)。
第二行是n个正整数Ai(在1至1000之间),相邻两数之间用空格隔开。
输出格式
一个整数,即互质数组合的个数。
样例输入
7
3 5 7 9 11 13 15
样例输出
17
描述
定义:对于两个整数,如果它们的公约数只有1,就称这两个整数互质。
任务:给定n个互不相同的正整数,任取其中两个数,有多少种选法使得选出的两个数互质?
输入格式
第一行是一个正整数n(n<=1000)。
第二行是n个正整数Ai(在1至1000之间),相邻两数之间用空格隔开。
输出格式
一个整数,即互质数组合的个数。
样例输入
7
3 5 7 9 11 13 15
样例输出
17
#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;
}