题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如果一个分数的分子和分母的最大公约数是 11,这个分数称为既约分数。
例如 \frac{3}{4} ,\frac{1}{8} ,\frac{7}{1}43,81,17, 都是既约分数。
请问,有多少个既约分数,分子和分母都是 11 到 20202020 之间的整数(包括 11 和 20202020)?
运行限制
- 最大运行时间:2s
- 最大运行内存: 128M
思路
样例提示了,i/j,i>=j和i<j的情况都包括。水题虽然没有难度,但在细心,需考虑周全。
Code
#include<bits/stdc++.h>
using namespace std;
int fun(int x,int y){//j>=i y>=x
int r;
while(x){
r=y%x;
y=x;
x=r;
}
return y;
}
int main(){
int cnt=0;
for(int i=1;i<=2020;i++){
for(int j=i;j<=2020;j++){//包括了i==j
if(fun(i,j)==1)cnt++;
if(i!=j){//不包括i==j
if(fun(j,i)==1)cnt++;
}
}
}
cout<<cnt; //2481215
return 0;
}