2020年省赛蓝桥杯大学B组试题 B: 既约分数

试题 B: 既约分数
【问题描述】
如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。
例如,3/4, 5/2, 1/8, 7/1 都是既约分数。
请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数(包括 1和 2020)?

【答案提交】
这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解
答案:2481215
解题思路:这题首先,当分母为一和分子为一时都符合条件,所以至少有2020+2019种,然后开始求其他情况,定义一个函数求分子和分母的最大公约数直接套模板就可以。在主调函数中,两层循环分别是分子和分母,然后开始遍历,最后得出结果后加上开头我们想的两种情况就可以了。

#include
using namespace std;
int yue(int a,int b)
{
	int r;
	do
	{
		r=a%b;
		a=b;
		b=r;		
	}while(r);
	return a;
}
int main(void)
{
	int n=0;
	for(int i=2;i<=2020;i++)
		for(int j=2;j<=2020;j++)
	{
		if(yue(i,j)==1)
		n++;
	}	
	cout<<n+2020+2019;
}

你可能感兴趣的:(蓝桥杯,c++)