思路:
从2开始到sqrt(n)查询可以整除他的素数,并且判断这个素数的平方是否可以整除n,如果可以输出0,否则判断可以整除他的素数个数,奇数个输出-1,偶数个输出1
#include <iostream> #include <stdio.h> #include <math.h> using namespace std; int main() { int n ; cin>>n ; int prime=1; int flag=0; for(int i=2;i<=sqrt(n);i++) { if(n%i==0) { prime++; n/=i; if(n%i==0) { flag=1; break; } } if(flag==1) break; //cout<<prime<<endl; } if(flag) cout<<0<<endl; else { if(prime%2==0) cout<<1<<endl; else cout<<-1<<endl; } return 0; }
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。