/*试题 B: 既约分数
【问题描述】
如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。
例如,3/4, 5/2, 1/8, 7/1 都是既约分数。
请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数(包括 1和 2020)?
【答案提交】
这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
题解
答案:2481215*/
#include<bits/stdc++.h>
using namespace std;
int fu(int a, int b){ //递归求最大公约数 辗转相除法
if(a%b == 0)
return b;//b是最大公约数
else
return fu(b,a%b);//a=b;b=a%b;
}
//最小公倍数 a*b/最大公因数
int main()
{ int cnt=0;
for(int i=1;i<=2020;i++)
for(int j=1;j<=2020;j++)
{
/*if(i>j)
swap(i,j);*/
if(fu(i,j)==1)
cnt++;
}
cout<<cnt;
return 0;
}