Re: [問題] 判斷質數等不到所有數都除過就判定了?
整理一下
bool isPrime(int N){ //引入問題N
// 要有一些前置防呆
if( N < 2 ) return 0; // 不考慮1以下
if( N == 2 ) return 1; // 2為質數
if( N % 2 == 0 ) return 0; //偶數
//接下來才是運算部分
int M = int(sqrt(N)); //判斷N是否為質數,不需要超過根號N
for( int i = 3; i < M; i+=2 ){
if( N % i == 0 ) return 0;
}
return 1;
}
所以基本上質數判斷是(根號N)量級
另外我有試著製作質數表,就是從3開始+2往上跑,是質數就寫到txt
扣除一些初始值(2,3,5等),判斷為質數的方法改為從txt裡面撈
(不曉得這樣跟 %(i+2)哪個比較快 )
累計到八位數就要一百多MB = =
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.238.233
※ 編輯: Leeng 來自: 61.230.238.233 (08/30 21:31)
推
08/30 21:31, , 1F
08/30 21:31, 1F
推
08/30 21:36, , 2F
08/30 21:36, 2F
→
08/30 21:36, , 3F
08/30 21:36, 3F
→
08/30 21:39, , 4F
08/30 21:39, 4F
→
08/30 21:39, , 5F
08/30 21:39, 5F
→
08/30 21:40, , 6F
08/30 21:40, 6F
→
08/30 21:41, , 7F
08/30 21:41, 7F
→
08/30 21:42, , 8F
08/30 21:42, 8F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章