当前位置: 代码迷 >> 综合 >> 1509: [蓝桥杯2020初赛] 既约分数
  详细解决方案

1509: [蓝桥杯2020初赛] 既约分数

热度:50   发布时间:2023-12-10 11:52:34.0

题目描述(本题考验辗转相除法求gcd)

如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。
例如\frac{3}{4},\frac{5}{2},\frac{1}{8},\frac{7}{1}43?,25?,81?,17?都是既约分数。
请问,有多少个既约分数,分子和分母都是1 到2020 之间的整数(包括1和2020)?

输出格式

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

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int ans;
int gcd(int i, int j)
{return j == 0 ? i : gcd(j, i % j);
}
int main()
{for(int i = 1; i <= 2020; i++){for(int j = 1; j <= 2020; j++){if(gcd(i , j) == 1)ans++;}}cout << ans;return 0;
}