题意:
输入一个数字,判断这个数字是不是素数,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++);
}
}
本文介绍了一个简单的素数判断算法,并提供了完整的C++实现代码。该算法通过预先计算一定范围内的素数并存储在一个数组中来快速判断任意输入的数字是否为素数。文章特别指出2在这个上下文中不被视为素数。
418

被折叠的 条评论
为什么被折叠?



