#include<stdio.h>
int t = 0;
int dd(int x, int y)
{
if (x % y == 0)
{
return y;
}
else
{
return dd(y, x % y);
}
}
int main()
{
int i ,j= 1;
int ans = 0;
for (i = 1; i <= 2020; i++)
{
for (j = i+1; j <= 2020; j++)
{
if (dd(i,j) == 1)
{
ans++;
}
}
}
printf("%d", ans*2+1);
return 0;
}
首先运用了辗转相除法(本质上是递归)求最大公约数
int a(int x,inty)
{
if(x%y==0)
{
return b;
}
else
{
return (y,x%y);
}
}
注意题未说明的情况,可是计算确要把2/2,3/3......等等算成一次;
所以可以先算出分子>分母的次数再*2+1;