前言
蓝桥杯2020年,填空题(C++)
一、题目描述
如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。
例如 3/4,1/8,7/1, 都是既约分数。
请问,有多少个既约分数,分子和分母都是 1 到 2020之间的整数(包括 1 和 2020)?
运行限制
- 最大运行时间:2s
- 最大运行内存: 128M
二、思路
构造一个求最大公约数的函数gcd(),然后去判断公约是否为1,以此进行统计
三、代码
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b)
{
if(b==0)
{
return a;
}
else
{
return gcd(b,a%b);
}
}
int main()
{
int ans=0;
int temp=0;
for(int a=1;a<=2020;a++)
{
for(int b=1;b<=2020;b++)
{
temp=0;
if(a<=b)
{
temp=gcd(b,a);
}
else
{
temp=gcd(a,b);
}
if(temp==1)
{
ans++;
}
}
}
cout<<ans<<endl;
return 0;
}