24h購物| | PChome| 登入
2009-10-02 22:22:25| 人氣647| 回應0 | 上一篇 | 下一篇

很大的質數判斷

推薦 0 收藏 0 轉貼0 訂閱站台

作法: 建出質數表,在做搜尋

/**********************************************************/

#include<stdio.h>     
#include<stdlib.h>     
#include<math.h>     
int Prime[5200]={0},p;       
char pp[50001]={0};     
int N,M,S;     
int prime()        
{        
 int a,b,m=1;     
 Prime[0]=2;        
 for(a=3;a<=50000;a=a+2)           
      if(pp[a]==0)           
        {           
           Prime[m]=a;           
           m++;           
           for(b=3;a*b<=50000;b=b+2)           
             pp[a*b]=1;           
        }        
   return m;        
}      
int Divisors (int num)     
{     
   int a,b,sq=(int)sqrt(num),find=0;     
   for(a=0;Prime[a]<=sq;a++)     
        if(num%Prime[a]==0)     
          {     
            find=1;break;      
          }     
   if(find==1) { putchar('n');putchar('o');putchar('\n'); }
   else { putchar('y');putchar('e');putchar('s');putchar('\n'); }
}     
    
main()     
{     
 p=prime();      
 int a,b;     
 while(scanf("%d",&N)==1)              
     Divisors(N);             
 return 0;        

台長: 來源不明
人氣(647) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ZeroJudge 基礎+原創題庫 |
此分類下一篇:2.字串處理
此分類上一篇:海星

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文