问题描述
如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。例如,3/4 , 5/2 , 1/8 , 7/1都是既约分数。请问,有多少个既约分数,分子和分母都是1 到2020 之间的整数(包括1和2020)?
#include<stdio.h>
int fun(int m,int n)
{
int i;
if (m == 1 || n == 1)
{
return 1;
}
else
{
if (n > m)
{
for (i = 2; i <= m; i++)
{
if (n % i == 0&&m%i==0)
{
return 0;
}
}
return 1;
}
else
{
for (i = 2; i <= n; i++)
{
if (m % i == 0&&n%i==0)
{
return 0;
}
}
return 1;
}
}
}
int main()
{
int i, j;
int ret;
int sum = 0;
for (i = 1; i <= 2020; i++)
{
for (j = 1; j <= 2020; j++)
{
ret = fun(i, j);
if (ret==1)
{
sum += 1;
}
}
}
printf("%d\n", sum);
return 0;
}
答案:2481215