#include <cstdio> #include <cstring> #include<iostream> #include <algorithm> using namespace std; typedef long long LL; const int MAXN=100000; bool check[MAXN+10]; int prime[MAXN+10]; int mu[MAXN+10]; void mobi() { memset(check,false,sizeof(check)); mu[1] = 1; int tot = 0; for(int i = 2; i <= MAXN; i++) { if( !check[i] ) { prime[tot++] = i; mu[i] = -1; } for(int j = 0; j < tot; j++) { if(i * prime[j] > MAXN) break; check[i * prime[j]] = true; if( i % prime[j] == 0) { mu[i * prime[j]] = 0; break; } else { mu[i *prime[j]] = -mu[i]; } } } } int main() { mobi(); int n;cin>>n; cout<<mu[n]<<endl; } int main() { int n;cin>>n; if(n==1)return cout<<1<<endl,0; int ans=0; for(int i=2;i*i<=n;i++) { int cnt=0; while(n%i==0)n/=i,cnt++; if(cnt>1)return cout<<0<<endl,0; ans+=cnt; } if(n>1)ans++; if(ans&1)return puts("-1"),0; return cout<<1<<endl,0; }
莫比乌斯
原创
©著作权归作者所有:来自51CTO博客作者qinXpeng的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【Canvas与艺术】三环莫比乌斯圈
在Canvas里用四段嵌合的圆弧绘制三环莫比乌斯圈。
canvas 莫比乌斯 -
【Canvas与艺术】四条L形组成的莫比乌斯圈
用Canvas绘制四条L形围成的莫比乌斯环
canvas 莫比乌斯 -
莫比乌斯函数&莫比乌斯反演
Orz PoPoQQQ 这个证明过程第三步和第四步一开始没看懂…… 第三步:观察计算左边f(k)的系数,可以看出只要d不大于n/k均可以使μ(d)成为f(k...
知识点讲解 数论 莫比乌斯函数 算法笔记 莫比乌斯反演