-
下面是乙個 C 程式的示例,它求解 3 到 30 之間的所有質數:
c#include
int isprime(int n) {
if (n <= 1) {
return 0;
for (int i = 2; i * i <= n; i++)if (n % i == 0) {
return 0;
return 1;
int main()
for (int i = 3; i <= 30; i++)if (isprime(i))
printf("%d ", i);
return 0;
在這個程式中,我們首先定義乙個函式 isprime,它用於確定整數是否為素數。 該函式採用整數引數 n,如果 n 為素數,則返回 1,否則為 0。
判斷乙個整數是否為素數的方法是從2開始,遍歷sqrt(n),並確定它是否能被n一整除。 如果存在因子,則 n 不是素數; 否則 n 為素數。
在 main 函式 main 中,我們使用 for 迴圈遍歷 3 到 30 之間的所有整數,並呼叫 isprime 函式進行判斷。 如果當前整數為素數,則輸出其值。
執行上述 **,可以得到以下輸出:
如您所見,所有介於 3 和 30 之間的素數都是 。
-
#include
#include
int main()
int i,j;
for(i=3;i<101;i++)
bool flag = true;
for(j =2;j<=sqrt(i);+j)請注意,它以 2 開頭並具有等號。
if(i%j==0)
flag = false;可分不是素數。
break;
if(flag)printf("%5d",i);列印質數。
-
以下是 Huai Sleepy C 語言的實現**
首先,從5開始迴圈到200,判斷是否是每個數字的質數。 如果它是素數,則將其新增到總和中。 最後,輸出求和得到結果。
-
<>根據結果,100 到 300 之間的第十個素數是 149
滿意
-
操作步驟如下。 <>
解釋:從 101 個奇數開始,到 299 結束,函式 isprime 確定是否為素數。
第 10 小時輸出。 結果。
-
C 語言找到質數 100 200。
最傳統的方法。 這種方法效率會比較低,判斷100-200之間的每個數字,偶數肯定不是質數,所以省略100-200之間的偶數會大大提高效率。 排除 100-200 之間的偶數。
雖然消除了 100 到 200 之間的偶數,但 J 從 2 到 i-1 的嘗試效率仍然很低,這將繼續優化。 優化 j。 當然,j 也可以從 2 優化到 i 2。
以上方法都是試分法,當然也有篩選方法,這段時間就不贅述了。
-
第二個空白應用 i==j 填充;
因為在j迴圈中,每個迴圈都是先通過判斷j<=i-1來執行的; 然後執行 i%j==0 判斷,如果正確,則從迴圈末尾開始,執行下一條語句,即確定第二個空格的內容; 如果是錯誤,則 j++ 繼續判斷 j<=i-1 並繼續迴圈;
所以j迴圈結束有兩種情況,一種是判斷i%j==0,不是質數,不需要輸出(這時候j也是判斷到最後乙個數的情況,判斷i%j==0還是錯誤,結束迴圈,這是質數, 輸出(素數的判斷永遠是錯誤的,也就是說最後乙個迴圈應該是 j=i-1,判斷 i%j==0 誤差 j++,j=i 判斷 j<=i-1 誤差後,j 結束迴圈,迴圈的結果是 j=i ))。
為了區分這兩種情況,你必須用 i==j 填寫第二個空白
-
是 i==j
你要自己敲它,看看結果。
#include
定義 n 50 * 可以是任何數字的階乘,當然,計算機可以儲存的下乙個 * >>>More
這其實不難,做點小把戲來吧。
int a[1000],b[500]; >>>More