题目描述:
定义:一个数字a的质因数是指能整除a而且是质数的数字,注意1并不是质数。给定一个整数,如果这个数字的质因数的个数为1,则输出Yes,否则输出No。
输入:
一个正整数n,表示测试案例的数量。
然后是n组案例,每组案例有一个正整数m。(m<=10000)
输出:
针对每组案例,如果m的质因数的个数为1,则输出Yes,否则输出No。
每组案例输出完要换行。
样例输入:
3
6
27
5
样例输出:
No
Yes
Yes
完整代码:
#include<iostream>
#include<cmath>
using namespace std;
bool f(int a)
{
if(a<2)
{
return false;
}
for(int i=2;i<=sqrt(a);i++)
{
if(a%i==0)
{
return false;
}
}
if(a)
{
return true;
}
}
int main()
{
int n;
cin>>n;
while(n--)
{
int m;
cin>>m;
int sum=0;
if(m!=1)
{
for(int i=1;i<=m;i++)
{
if(m%i==0&&f(i))
{
sum=sum+1;
}
}
if(sum==1)
{
cout<<"Yes"<<endl;
}
else if(sum>1)
{
cout<<"No"<<endl;
}
}
if(m==1)
{
cout<<"No"<<endl;
}
}
return 0;
}