#8688: 判斷質數_是否有更快方法或概念?


michael7105 (Azure Sky)

學校 : 不指定學校
編號 : 39690
來源 : [36.230.83.43]
最後登入時間 :
2014-03-06 21:55:33
a007. 判斷質數 | From: [61.231.238.233] | 發表日期 : 2014-03-06 21:04

#include<iostream>
#include<cmath>
using namespace std;
int main(void)
{
 register long h,i,j;        //暫存器變數
 while(cin>>i)
 {
 h=sqrt(i);                    //算到根號處
 bool k=true;
 for(j=3;j<h;j+=2)       //只讀奇數,加速兩倍
 {
  if(i%2==0)
  k=false;
  else
  {
  
  if(i%j==0)
  {
   k=false;
   break;
  }
 }
}
 if(k==true)
 cout<<"質數"<<endl;
 else
 cout<<"非質數"<<endl;
 }
}

 是否有更快方法或概念?

 
#8954: Re:判斷質數_是否有更快方法或概念?


tcfsh910993 (Akito-senior)

學校 : 國立臺中第一高級中學
編號 : 14969
來源 : [114.43.212.110]
最後登入時間 :
2023-09-19 16:28:37
a007. 判斷質數 | From: [140.112.240.38] | 發表日期 : 2014-07-06 23:26

#include
#include
using namespace std;
int main(void)
{
 register long h,i,j;        //暫存器變數
 while(cin>>i)
 {
 h=sqrt(i);                    //算到根號處
 bool k=true;
 for(j=3;j {
  if(i%2==0)
  k=false;
  else
  {
  
  if(i%j==0)
  {
   k=false;
   break;
  }
 }
}
 if(k==true)
 cout<<"質數"< else
 cout<<"非質數"< }
}

 是否有更快方法或概念?


你可以試試看Miller-Rabin Primility Test

 

 

 
#9030: Re:判斷質數_是否有更快方法或概念?


fantasy_whale (幻光海鯨)

學校 : 國立中山大學
編號 : 42092
來源 : [27.242.108.33]
最後登入時間 :
2020-10-26 22:41:49
a007. 判斷質數 | From: [140.117.147.41] | 發表日期 : 2014-07-24 13:39

#include
#include
using namespace std;
int main(void)
{
 register long h,i,j;        //暫存器變數
 while(cin>>i)
 {
 h=sqrt(i);                    //算到根號處
 bool k=true;
 for(j=3;j {
  if(i%2==0)
  k=false;
  else
  {
  
  if(i%j==0)
  {
   k=false;
   break;
  }
 }
}
 if(k==true)
 cout<<"質數"< else
 cout<<"非質數"< }
}

 是否有更快方法或概念?


你可以試試看Miller-Rabin Primility Test

 O_O

 



 
ZeroJudge Forum