天天看點

51nod 1240莫比烏斯函數

打表會爆 隻能判斷單個

#include<bits/stdc++.h>
using namespace std;
int mu(int n)
{
    int m = 0;
    for(int i = 2; i*i<=n; i++){
        if(n%i==0){
            n/=i,m++;
            if(n%i==0) return 0;
        }
    }
    if(n!=1) m++;
    return m&1?-1:1;
}
int main()
{
    int n;
    cin>>n;
    printf("%d\n",mu(n));
    return 0;
}
           

繼續閱讀