本文主要是介绍kuangbin专题十四 HDU2161 素数打表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:
输入一个数字,判断这个数字是不是素数,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++);elseprintf("%d: no\n",k++);}
}
这篇关于kuangbin专题十四 HDU2161 素数打表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!