poj3518 打质数表

题意:给你一个数 如果是素数就输出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 
 " ); 
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 
 " , kk + k ); 
37     } 
38     return  0 ; 
39 }
View Code
原文地址:https://www.cnblogs.com/a593510703/p/4713055.html