POJ 3518 Prime Gap(素数题)
生活随笔
收集整理的這篇文章主要介紹了
POJ 3518 Prime Gap(素数题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題意簡述】:輸入一個數,假設這個數是素數就輸出0,假設不是素數就輸出離它近期的兩個素數的差值,叫做Prime Gap。
【分析】:這題過得非常險。由于我是打的素數表。
由于最大的素數是1299709,所以注意在打表時要使用long long。否則程序應該不能執行。注意這一點應該就能夠了。
積累!
// 2984K 235Ms #include<iostream> using namespace std; #define N 2000001bool isprime[N]; long long prime[100001],nprime; // 注意long longvoid doprime() { long long i,j; // !!注意nprime = 1; memset(isprime,true,sizeof(isprime)); isprime[1] = 0; for(i = 2;i<=1299709;i++) { if(isprime[i]) { prime[nprime++] = i; for(j = i*i;j<=1299709;j+=i) { isprime[j] = false; } } } }int main() {long long n;//注意。doprime();while(1){cin>>n;if(n == 0)break;for(long long i = 0;i<nprime;i++){if(n == prime[i]){cout<<0<<endl;break;}if(n>prime[i]&&n<prime[i+1]){cout<<prime[i+1]-prime[i]<<endl;break;}}}return 0; }
轉載于:https://www.cnblogs.com/mengfanrong/p/5197759.html
總結
以上是生活随笔為你收集整理的POJ 3518 Prime Gap(素数题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP长连接与短连接的区别(转)
- 下一篇: Mac 录制视频,并转为GIF格式