文章
79
粉丝
221
获赞
46
访问
198.4k
#include <iostream>
using namespace std;
int main() {
int n;
while (cin >> n) {
int* a = new int[n], sum = 0;
for (int i = 0; i < n; i++)
cin >> a[i];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
if (a[i] < a[j]) {
int flag = 0;
for (int k = 2; k <= a[i]; k++)
if (a[i] % k == 0 && a[j] % k == 0) {
flag = 1;
break;
}
if (flag == 0)
sum++;
}
}
cout << sum << endl;
}
return 0;
}
思路:
输入n个数,遍历它们,a[i]作为分子,a[j]作为分母,真分数为必须为分子小于分母且不可化简的分数,不可化简的意思就是分子与分母不可以有公因数或者说最大公约数为1。故3层遍历,第一层为遍历分子,第二层为遍历分母,若分子小于分母则再次循环判断分子与分母是否有公因数,若没有则sum++。
登录后发布评论
暂无评论,来抢沙发