1.素數的定義
只能被1和它自己整除的自然數稱為素數,特別規定1不屬於素數。
2.求法
(1)根據素數的定義,很明顯,如果乙個數是素數<==>它的因子只包含1和它本身。
因此可以根據判別某個數的因子的方法來判斷其是否是素數。
intisprime(
intn)
}return1;
}
(2)但是如果要求求出1000000以內的所有素數,上面的方法效率就很低,因此通常採用篩選法去求素數。
篩選法:對於乙個數n,如果是素數,那麼2*n,3*n,4*n,必定不是素數。
bool
isprime[
1000001
];int
prime[
80000
];int
num=0;
void
getprime()
//用篩選法求算素數
for(i=2
;i<=
1000
;i++
) //
如果isprime[i]==true,即i是素數,那麼i,2*i,3*i必定不是素數
}for(i=
2;i<
1000001
;i++)}
}
C 實現素數的求法
素數定義 簡單來說,素數就是正能被1和它自身整除的數。例如2,3,5,7等都是素數 實現 1 最簡單的一種方法判斷乙個數是不是素數n,就是用2 n 1 去分別除這個數,如果有乙個能被整除,則該數不是素數,否則該數是素數。2 優化 不用去判斷2 n 1 只需要判斷2 n 2或者2 n開平方即可 inc...
素數快速求法 篩法求素數
在做題的過程中,我們會遇到一些需要求素數的要求,如果對於資料範圍很小的資料,我們有最簡單但是最耗時間的雙for迴圈巢狀法。下面舉個例子。question get the primes from 1 to 100 and print them.素數求法 基礎for迴圈法 include include...
C語言素數的多種求法
include include int isprime int n 判斷數n是否為素數 int i for i 2 i i n i 只需要求2到根號n是否有n的因子即可。return1 int main printf nthe number of primes is d.n count 主要 段 結...