首页 > 其他 > 详细

1500. Prime Gap 11 月 11日

时间:2016-11-14 00:52:01      阅读:217      评论:0      收藏:0      [点我收藏+]

/*本篇为转载,在此申明,具体就是先设定从2以后所有的数都为质数,定为质数的数的倍数则不是质数,慢慢排除后面的数*/

 

 

 

#include<iostream>
#include<cstring>
using namespace std;
const int N = 1300000;//第10万个数为1299709
int prime[N];
bool notPrime[N];

int main()
{
 
 memset(prime,0,sizeof(prime));
 memset(notPrime,0,sizeof(notPrime));
 int count = 0;
 for(int i = 2; i < N;i++)//求素数表
 {
  if(!notPrime[i]) ; prime[count++] = i;
  
  for(int j = 0; j < count && (i * prime[j] < N);j++)
  {
   notPrime[i * prime[j]] = true;
   if(!(i % prime[j]))
    break;
  }
 }

 int test;
 while(cin >> test && test != 0)
 {
  for(int i = 0; i < 100000; i++)
  {
   if(prime[i] == test)//输入的是素数
   {
    cout << "0" << endl;
    break;
   }
   else
   {
    if(test < prime[i] && i != 0)
    {
     cout << prime[i] - prime[i - 1] << endl;
     break;
    }
   }
  }
 }
 return 0;
}

1500. Prime Gap 11 月 11日

原文:http://www.cnblogs.com/sysu-eeman-yang/p/6060144.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!