题意:
输入一个数字,判断这个数字是不是素数,n<=0时,输入结束。
题解:
素数打表就好了,还有就是这道题2不是素数。。。
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
#define LL long long int
const int MAXN=16000+7;
bool prime[MAXN];
void Prime()
{
prime[0]=prime[1]=false,prime[2]=true;
for(int i=3;i<MAXN;i++){
if(i%2) prime[i]=true;
else prime[i]=false;
}
for(int i=3;i<=sqrt(MAXN);i++)
if(prime[i])
for(int j=i+i;j<MAXN;j+=i)
prime[j]=false;
}
int main()
{
Prime();
prime[2]=false;
int n,k=1;
while(~scanf("%d",&n))
{
if(n<=0)
break;
if(prime[n])
printf("%d: yes\n",k++);
else
printf("%d: no\n",k++);
}
}