1樓:
埃拉託尼篩子是一個求素數史上里程碑般的方法,簡單,方便
而且對於計算機求素數來說,埃拉託尼篩子也是簡便的方法
2樓:
素數是大於1的整數,除了它本身和1以外,不能被正整數所整除.也稱作「質數」.
在歐幾里得的《幾何原本》中,給出了素數的定義為只能被單位量除盡的數。另外還給出了算術基本定理,即如果a是素數p、q…的乘積,那麼將a分解成素數乘積的方法是惟一的。在《幾何原本》中,已經得出素數的個有選舉權是無限的。
與歐幾里得同時代的數學家埃拉托色尼首先給出了求素數的方法,現在人們稱之為「埃拉託尼篩子」。他求素數的方法如下。
他首先從2開始,寫出自然數:2,3,4,5,6,7,8,9…100,然後,把其中的一切合數劃去,劃掉合數的原則是,在這一列數中,第一個數2滿足素數的定義,把它保留下來。隨後把能被2整除的數都劃去,因為它們都是合數。
接著在數2後的沒有被劃去的第一個數是3,因為它只被1和它本身整除,所以它是一個合數,把它也劃去。剩下沒有被劃去的第一個有選舉權是5,它只能被這和它本身整除,所以它也是一個素數。如此連續不斷地劃下去,最後剩下的數都是素數。
為什麼把這種方法叫做「厄拉多塞篩子」呢?因為厄拉多塞在求素數時,把自然數寫在一塊白蠟的木板上,並逐個在寫著合數的位置上刺一個孔,這樣白蠟板上被刺了很多的小孔,好像一個篩子。把所有的合數「篩掉」剩下的就都是素數。
用「厄拉多塞篩子」可得到100以內的25個素數:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97。
給了你演算法,設計資料結構、畫流程圖該沒什麼問題吧?
以下地址裡有現成的程式。
用c語言編1到100之間的素數程式
3樓:啤酒哥資料
程式及解釋如下:
首先判斷素數的演算法:用一個數分別去除以2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。
則有如下程式}
4樓:匿名使用者
判斷素數的方法:用一個數分別去除以2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。 }
5樓:匿名使用者
# include
void main()}
6樓:匿名使用者
#include "stdio.h"
main ()}
c語言 輸出1到100之間的全部素數?
7樓:
有三種方法:
1、輸出1-100以內的素數:
2、同樣,也是輸出1-100以內的素數,這個構造一個陣列,將其所有元素初始化為1,表示素數,這時取x從2開始,到100以內做迴圈。
若x為素數,即prime[x]!=0,使得每個i*x位置元素置0(prime[i*x]=0),表示為非素數,迴圈結束前x+1。
3、該方法是輸出100個素數,基本思想是構造一個素數表,利用函式判斷每個數是否能被其之前的素數整除,如果不能,則在素數表內加上該元素,不斷迴圈(while迴圈結束條件是cnt即陣列個數》100)。
8樓:胡穰將又菡
遍歷所有值,判斷是否為素數,如是,則輸出。
一、演算法設計:
1、遍歷1到100之間所有數,由於1的特殊性,不是素數也不是合數,所以可以從2開始遍歷;
2、對於每一個數,判斷是否為素數;
3、如果是素數,則輸出,否則繼續下一個。
二、參考**:
#include
#include
int isprime(int n)//判斷素數函式。
int main()
三、執行截圖:
9樓:1024程式設計師
c語言經典例子之求100之內的素數
10樓:匿名使用者
#include
int isprime(int num)
void main()
11樓:****
#include "stdio.h"
main()
if(prime==1)/*從2開始*/
printf("%d\n",j);
}printf("\n");}
12樓:匿名使用者
#include
using namespace std;
void main()
else
}cout< 13樓:路還是在腳下 #include #include "maths.h" void main () if(n%10==0) printf"\n");} 14樓:可愛的 num/2就已經表示你是錯的 j**a求1-100之間質數 15樓:匿名使用者 public class sushu void sushu() }if(fg == 1) fg = 1;}} 16樓:匿名使用者 public class zhishu if (j>i/2) system.out.println("數"+i+"是質數");}}} 像郭德綱剛 素數,又稱質數,在大於1的自然數中,除了1和它本身以外不再有其他因數的數。2,3,5,7,11,13,17,19都是素數 背景知識 素數 只有兩個正因數 1和自己 的自然數即為素數.比1大但不是素數的數稱為合數.1和0既非素數也不是合數.合數是由若干個質數相乘而得到的.沒有質數就沒有合數... 莫道無情 c語言程式如下 include int main int i,j,k 0 for i 2 i 10000 i for j 2 j j i j if i j 0 break if j j i printf d i k if k 5 0 printf n int main if flag re... 聽不清啊 include include int prime int n int i if n 2 return 0 for i 2 i sqrt n i if n i 0 return 0 return 1 int main int i file fp if fp fopen d 0.txt w ...120以內的所有素數
用c語言輸出1到10000之間的所有素數
程式設計求1 2019間的所有素數,並把結果輸出到檔案中儲存起來