1樓:逃離
我今天也剛問了一個素數的問題。
例如一個數是m,要求它的素數,設k=sqrt(m),i=2,i<=k ,判定是否(m%i==0),
因為整數都是可以被1和自己本身整除,而素數只能給1和自己本身除。
所以我要找素數都是從2開始一個一個的找,在2
這樣編的意思就是找一個數的最小因子。且這個比if(i==m)程式的速度更快。
2樓:匿名使用者
是否是素數是用比它小的數去除它看能否出盡來判斷的,而如果能出盡的話那麼除數是成對存在的,比如22=2*11,2和11就是一對,而這一對只要判斷一個就可以了,因此這種除數判斷的下界為2,而上界為被除數開根號。
3樓:匿名使用者
舉例說明:
1. 90 = 2 * 3 * 3 * 5 (90的質因式中最大的質因數是5,小於90的平方根)
2. 49 = 7 * 7 (49 的質因式中最大的質因數是7,等於49的平方根)
總之,任意一個數的最大的質因數都小於或等於這個數的平方根。
所以,求素數時求到這個數的平方根即可,這樣可以程式提高程式效率。
4樓:
因為根號某數是可被整除無重複的數最大那個(除了本身以為),被625整除的數最大的也就是25,再大的被整除的因數中另一個肯定是2到25中某個數,因此無需繼續判斷。比如5,和125無需判斷125。
判斷一個數是否是素數,為什麼只要除到根號那個數就夠了 ,求c語言**
5樓:匿名使用者
x=ab
那麼a和b,必然有一個大於√x,一個小於(或者兩個都等於)。
那麼不是隻要判斷到√x就可以麼?
c語言程式設計 求1到20的素數
以下是求1到20的素數的c語言程式 c include int main int i,j,flag printf 1 20的素數有 for i 2 i 20 i flag 0 for j 2 j i 2 j if i j 0 flag 1 break if flag 0 i 1 printf d i...
c語言問題6,c語言問題 為什麼答案是8,6,
1 結構體的成員可以是另一個結構體,這就叫結構體的巢狀。比如 struct segment 下面的bs 213是遞迴,是定義成自己本身的一個結構體,本身的結構體又定義了一個本身的結構體,這樣下去就是個無限遞迴了。可以這樣寫,但實際中是沒有什麼用處的。struct node 2 在c語言中,連結串列中...
超難C語言設計問題,為什麼C語言比較難學?
我暈!你能多給點分嗎?為什麼c語言比較難學?10 不是啦!c語言入門還是比較容易的,很多人都說c語言是高階語言中的低階語言,是應為它可以直接接觸到底層的東西,如直接讀寫記憶體等,也正因此c語言也是一種很靈活的語言。也許難就難在它的靈活性上吧。 我就學不來,為了學c語言我大學報了補習班,但是2次考試都...