- 题目描述:
-
给定一个数n,判定它是否有一个不为1的完全平方数因子。也就是说,是否存在某个k,k>1,使得k*k能够整除n。
- 输入:
-
每行一个整数n,1<n<10000,n=0标志输入结束。
- 输出:
-
对于每一个输入的整数,在单独的一行输出结果,如果有不为1的完全平方数因子,则输出Yes,否则输出No。请注意大小写。
- 样例输入:
-
15 12 0
- 样例输出:
-
No Yes
#include<iostream> #include<cmath> using namespace std; int main(){ int n,i; while(cin>>n){ if(n==0) break; bool flag=false; for(i=2;i<n;i++){ if(n%(i*i)==0) { flag=true; break; } } if(flag) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }