【HDU - 2012】素数判定(水题,数论,打表)
生活随笔
收集整理的這篇文章主要介紹了
【HDU - 2012】素数判定(水题,数论,打表)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題干:
?
解題報告:
?
AC代碼1:
#include<bits/stdc++.h> #define MAX 10000//求MAX范圍內的素數 using namespace std; long long su[MAX],cnt; bool isprime[MAX]; void prime() { cnt=1; memset(isprime,1,sizeof(isprime)); isprime[0]=isprime[1]=0;for(long long i=2;i<=MAX;i++) { if(isprime[i]) {su[cnt++]=i; } for(long long j=1;j<cnt&&su[j]*i<MAX;j++) { isprime[su[j]*i]=0;} } } int main() { prime(); int tmp=0;int x,y,flag; while(~scanf("%d %d",&x,&y) ) {if(x==0 && y == 0) break;flag = 0;for(int i = x; i<=y; i++) {tmp = i*i+i+41;if(!isprime[tmp] ) {flag = 1;break;}}flag == 1 ? printf("Sorry\n") : printf("OK\n");}return 0; }AC代碼2:
#include<stdio.h> #include<math.h> int isPrime(int x); int main() {int i,flag; int x,y;while(scanf("%d",&x)!=EOF){scanf("%d",&y);flag=1;if(x==0&&y==0){break;}else{for(i=x;i<=y;i++){if(isPrime(i*i+i+41)==0){flag=0;break;}}}if(flag==1){printf("OK\n");}else{printf("Sorry\n");}}return 0 ; } int isPrime(int x){int i,flag=1;for(i=2;i<sqrt(x);i++){ if(x%i==0){flag=0;break;}}return flag; }?
總結
以上是生活随笔為你收集整理的【HDU - 2012】素数判定(水题,数论,打表)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rpcclient.exe - rpcc
- 下一篇: 手上有十万,存3年期的定期与存三个1年期