1. 程式人生 > >POJ - 3090 gcd水題

POJ - 3090 gcd水題

+= 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水題