测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A46416. 最简真分数【辗转相除法】

填空题 中等

题目描述

最简真分数【辗转相除法】

题目描述

给出n个正整数,任取两个数分别作为分⼦和分母组成最简真分数,编程求共有⼏个这样的组合。

样例

输入

7

3 5 7 9 11 13 15

输出

17

参考答案

#include<iostream> using namespace std; int a[601]; int fun(int m,int n)//辗转相除求最大公约数 { while(m%n!=0) { int r=m%n; m=n; n=r; } return n; } int main() { int n; cin>>n; for(int i=1;i<=n;i++)//输入原始数据 { cin>>a[i]; } int ans=0; for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++)//循环枚举所有组合 { if(fun(a[i],a[j])==1)//最大公约数为 1 证明是最简分数 { ans++; } } } cout<<ans<<endl; return 0; }
上一题 下一题