【问题描述】
如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。例如,3/4 , 5/2 , 1/8 , 7/1都是既约分数。请问,有多少个既约分数,分子和分母都是1 到2020 之间的整数(包括1和2020)?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
代码:
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int ans = 0;
for(int i=1;i<=2020;i++)
{
for(int j = 1; j <= 2020; j++)
{
if(__gcd(i,j) == 1) ans++;//令最大公因数等于1 ans++
}
}
cout<<ans<<endl;
return 0;
}
__gcd是求最大公约数的函数,int、long long类型都可以,需要注意的是两个类型必须要相同,还有不能用浮点型,当然手写gcd函数也是可以的,它头文件是algorithm。