码迷,mamicode.com
首页 > 其他好文 > 详细

poj3518 打质数表

时间:2015-08-08 14:50:02      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

题意:给你一个数 如果是素数就输出0 否则输出大于它的最小质数 和 小于他的最大质数 的差

比如10  大于它的最小质数是11  小于他的最大质数是7 所以输出11-7=4

水题质数表 虽然我的方法傻逼哭)

 

技术分享
 1 #include  <stdio.h> 
 2 #include  <string.h> 
 3 bool isp [ 10000010 ]; 
 4 int prime [ 10010 ], size , n , ans , Min =  1299709 , k ; 
 5 int  main () 
 6 { 
 7     memset ( isp , 1 , sizeof ( isp )); 
 8     for  ( int i =  2 ; i <=  100000 ; i ++) 
 9     { 
10         if  ( isp [ i ]) 
11         { 
12             prime [++ size ]  = i ; 
13             for  ( int k =  2 ; k <=  1299709 / i ; k ++) 
14                 isp [ k * i ]  =  false ; 
15         } 
16     } 
17     k =  0 ; 
18     int kk ; 
19     while ( scanf ( "%d" ,& n ), n ) 
20     { 
21         if ( isp [ n ]) 
22         { 
23             printf ( "0 \n " ); 
24             continue ; 
25         } 
26         for  ( k =  1 ;; k ++) 
27         { 
28             if ( isp [ n - k ]) 
29                 break ; 
30         } 
31         for  ( kk =  1 ;; kk ++) 
32         { 
33             if ( isp [ n + kk ]) 
34                 break ; 
35         } 
36         printf ( "%d \n " , kk + k ); 
37     } 
38     return  0 ; 
39 }
View Code

 

poj3518 打质数表

标签:

原文地址:http://www.cnblogs.com/a593510703/p/4713055.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!