判斷素數彙總

2021-09-02 07:28:57 字數 872 閱讀 2548

首先是輸入乙個數,判斷這個數是否為素數。

#include #include int main()

} if(i == n) }

int main()

else

return 0;

}

是不感覺還不如寫到主函式中?其實不然,關於自定義函式的優點這裡體現的不明顯,所以我們本次不做關於自定義函式好壞的討論,我們繼續優化這個**,現在問題來了,一次只能判斷乙個數字是不是不能達到我們的需求呢?那麼我們修改一下**,讓其將n之前的所有素數全部帶出來。

bool isprime(int n)

} if(i == n) }

int main()

} return 0;

}

我們測試乙個一百以內的素數:

其實仔細看就能發現,我們並沒有修改自定義函式的內容,我們只是在主函式中做了個判斷,就實現了我們上乙個問題,這裡也可以看出自定義函式的優勢,雖然他有更大的優勢,但是我們這裡不做討論。

寫到這裡在我之前的認知範圍裡基本上就結束了,但實際上再深入一點考慮到時間複雜度,我們還可以做一定的優化:

bool isprime(int n)

} if(i == sqrt((double)n)+1)

}

這裡是自定義函式,主函式部分和上面完全一致,但是這裡使用的迴圈條件比起之前的,時間複雜度是根號n,這個學到之後我就感覺,演算法,真的有趣。

判斷素數類問題彙總

注 暫時先記錄這些問題,後期再持續更新 int i,m printf enter a number scanf d m for i 2 i m 2 i if m i 0 break 若m能被某個i整除,則m不是素數,提前結束迴圈 if i m 2 m 1 若迴圈正常結束,說明m不能被任何乙個i整除 ...

利用孿生素數判斷素數

思路參見 孿生素數 所謂孿生素數指的是間隔為 2 的相鄰素數。大於6以上的孿生素數,p 1和p 1為素數,則p 1和p 1一定為奇數,則p一定為偶數,即p為2的倍數 p 1 p p 1為連續的自然數,他們一定有乙個是3的倍數,p 1和p 1為素數,則他們不為3的倍數,即p也為3的倍數 所以p一定為2...

判斷素數 Excel公式練習53 判斷素數

excelperfect 本次的練習是 在列a中給定乙個整數值,例如單元格a2,並且2 a2 100,要在列b中 例如單元格b2 使用公式進行判斷 如果列a中的值是素數,則返回 素數 如下圖1所示。圖1素數也稱質數,是指在大於1的自然數中,除了1和它本身外不再有其他因數的自然數。先不看答案,自已動手...