English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

某數為一ㄍ正整數 而且所有小於某數ㄉ正整數中 恰好有12ㄍ質數 請問某數可能值是多少

請幫我寫上算式

2006-08-10 14:17:43 · 4 個解答 · 發問者 1 in 電腦與網際網路 程式設計

4 個解答

這個程式基本上要有兩個機制,一個是判斷是否為質數的機制,另一個是計算已經有幾個質數的機制!
然後就從2開始,每次加1判斷是否為質數
若為質數,則計數器加1
ㄧ直到計數器為12時的那個正整數再加1,就是正解!

阿C程式很久以前就忘光了,所以沒辦法直接寫出來!
不過其邏輯應該是這樣的啦!

2006-08-10 14:25:40 · answer #1 · answered by ? 3 · 0 0

使用 Haskell 程式語言:


prime = sieve [2..]
where sieve (x:xs) = x : sieve (filter ((/= 0).(`rem` x)) xs)

answer = [(prime !! 11 + 1)..(prime !! 12)]

2006-08-10 15:18:57 · answer #2 · answered by ? 2 · 0 0

//Power by Microsoft Visual Studio 2005//可以使用 Dev-C++ 編譯此程式#include #include #include #define MAX_NUMBER 1000//Eratosthenesint main(int argc, char *argv[]){ //=====START=====// void prime_of_Eratosthenes(void); prime_of_Eratosthenes(); //=====END=====// system("PAUSE"); return 0;}void prime_of_Eratosthenes(void){ //The Sieve of Eratosthenes int i,j,prime[MAX_NUMBER+1]; int blnTrue=EOF,blnFalse=0; printf("The Sieve of Eratosthenes( 1- 1000)\n"); for(i=2;i<=MAX_NUMBER;i++){  prime[i]=blnTrue; }//for for(i=2;i*i<=MAX_NUMBER;i++){  if(prime[i]==blnTrue){   for(j=2*i;j<=MAX_NUMBER;j++){    if(j%i==0){     prime[j]=blnFalse;    }//if   }//for  }//if }//for for(i=2;i<=MAX_NUMBER;i++){  if(prime[i]==blnTrue){   printf(" %3d",i);  }//if }//for printf("\n");}
圖片參考:http://www.geocities.com/linuxhmj/picture/d1.png


2006-08-10 18:55:20 補充:
有 12 個正的質數 < 某正整數答案:38 ~ 4138、39、40、41假如 "某正整數" 是 42,就有 13 個正的質數。

2006-08-10 19:21:23 補充:
如果是純數學題,是沒有算式的,質數要一個一個數到 12 個。

2006-08-10 14:47:45 · answer #3 · answered by Big_John-tw 7 · 0 0

∵從1數上來 到37剛好有12個質數
(2.3.5.7.11.13.17.19.23.29.31.37)
∴某數>37
某數"可能值"→比37大的都是可能值

2006-08-10 14:26:51 · answer #4 · answered by 瑋瑋 1 · 0 0

fedest.com, questions and answers