POJ - 3090 gcd水題
阿新 • • 發佈:2018-02-14
+= div poj 打表 turn logs 水題 -m bool
大概題意就是求\(1 \le i,j \le n\)的\(gcd(i,j) = 1\)的個數+2(對於0的特判)
正解應該是歐拉函數或者高逼格的莫比烏斯反演
但數據實在太水直接打表算了
/*H E A D*/
bool GCD[1002][1002];
inline int gcd(int a,int b){return b?gcd(b,a%b):a;}
int main(){
rep(i,1,1000) rep(j,1,1000) GCD[i][j]=bool(gcd(i,j)==1);
int T=read(),kase=0;
while(T--){
int n=read();
if (n==1){
printf("%d %d 3\n",++kase,n);
continue;
}
int ans=0;
rep(i,1,n) rep(j,1,n) ans+=GCD[i][j];
ans+=2;
printf("%d %d %d\n",++kase,n,ans);
}
return 0;
}
POJ - 3090 gcd水題