判断素数。现要求编写一个程序,输入任意一个正整数,判断其是否是素数,如果是素数则输出“YES”,否则输出“NO”。
Input:
多组测试数据,每组输入一个整数 m (m>=3并且m<=10000)。
Output:
多组测试数据,每组输出一个字符串(“YES”或“NO”)。
样例输入
4
9
17
23
324
样例输出
NO
NO
YES
YES
NO
这题非常的“计蒜客”,我纠结了好久一直在循环怎么退出去,结果给赖同学点醒了,只要输入不为空就继续,输入为空就可以退出了。计算量也不是很大所以我就没用sqrt(用了其实也麻烦,想知道具体为什么麻烦的可以亲手操作一下),记得注意一下素数是除了1和本身以外没有约数的(所以我从2开始)。最后附上代码。
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int n,flag=0,k;
while((cin>>n)!=NULL)
{
k=n,flag=0;
for(int i=2;i<k;i++)
{
if(k%i==0)
{
flag=1;
}
}
if(flag==0)
{
cout<<"YES"<<endl;
}
else
{
cout<<"NO"<<endl;
}
}
return 0;
}