题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1240
思路:从2开始到sqrt(n)查询可以整除他的素数,并且判断这个素数的平方是否可以整除n,如果可以输出0,否则判断可以整除他的素数个数,奇数个输出-1,偶数个输出1
1 #include<iostream> 2 #include<algorithm> 3 #include<string> 4 #include<cstring> 5 #include<cmath> 6 using namespace std; 7 int main() 8 { 9 std::ios::sync_with_stdio(false); 10 int n; 11 cin>>n; 12 int flag=0,prime=1; 13 for(int i=2;i<=sqrt(n);i++){ 14 if(n%i==0){ 15 prime++; 16 n/=i; 17 if(n%i==0){ 18 flag=1; 19 break; 20 } 21 } 22 if(flag) break; 23 } 24 if(flag) cout<<0<<endl; 25 else{ 26 if(prime%2==1) cout<<-1<<endl; 27 else cout<<1<<endl; 28 } 29 return 0; 30 }