问题描述
今年是 2020 年,今天是 10 月 18 日。
请问在 1 到 2020 中,有多少个数与 1018 互质。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
答案:1008
思路:
用欧几里得方法分别计算每个数和1018的最大公约数。
#include <iostream>
#include <cstdio>
using namespace std;
int gcd(int a, int b)
{
if (b == 0)
{
return a;
}
return gcd(b, a%b);
}
int main()
{
int res = 0;
for (int i = 1; i <= 2020; i++)
{
if (gcd(i, 1018) == 1)
{
res++;
}
}
cout << res << endl;
return 0;
}