【题目描述】
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如果一个分数的分子和分母的最大公约数是 11,这个分数称为既约分数。
例如 3/4 ,1/8 ,7/1,都是既约分数。
请问,有多少个既约分数,分子和分母都是 11 到 20202020 之间的整数(包括 11 和 20202020)?
【题目解析】
本质就是问分子分母有无公约数,所以用辗转相除法即可。
【代码如下】
#include<stdio.h>
int main() {
int cnt = 0;
for(double i=1; i<2021; i++) {
for(double j=1; j<2021; j++) {
int t,a=i,b=j;
t = a % b;
while( t != 0 ) {
a = b;
b = t;
t = a % b;
if( t == 0 && b == 1) {
cnt++;
break;
}
}
}
}
printf("%d",cnt+2020);
return 0;
}