關於c語言素數判斷

時間 2022-09-09 23:00:07

1樓:匿名使用者

1、i大於half當然能夠說明data是素數了。

判斷素數的條件是除了能被1和自身整除之外不能被其它數整除。也就是說只要不能被自身的一半整除就行了。

當 i>half時,data已經不能被小於等於data/2(data的一半)整除了!到這個時候,已經能判斷data為素數了!

2、當i==half時,data都不能被i整除,執行i++,然後判斷 i<=half;當i>half時for語句結束!懂嗎?

其實for語句的主要目的是讓自身終止執行,讓它終止有兩個條件,第一、if(data%i==0) break;也就是它判斷data不是素數,因為「data%i==0」,data能被小於等於它的數整除,當然不是素數了,然後通過「 if(i>half) {xx[n]=data;n++; 」這條語句判斷,當i沒有累加到小於data/2,那麼data不是素數。第二、i<=half ,如果是這樣,那麼data一定是素數了。因為它沒有被data/2的數整除!

2樓:桂綸美

if 不一定需要else對應的。。。

if(a)

.....;

就是如果a就.....,那麼如果a不滿足,就什麼也不做。

if(a)

.....;

else

........;

就是如果a就.....,如果a不滿足就做else下面的那一行。

兩個形式不同。

你無緣無故插else 會破壞**結構。

3樓:鷹弈

看來樓主對if() ... else if() ...else if() ... ... else的用法不清楚

這是一個整體判斷語句,樓主可以看看書,錯誤主要出在了

解決方法:

#include

int sushu(int a)

else if(a>1) //改為a>1,因為負數不等於素數

else

} //加括號,這樣if和else匹配

}else //當a<0是返回0,if()...else if()...else匹配

}void main()

如果對你有所幫助,請記得采納最佳答案,謝謝!

4樓:

沒有錯啊,我測試了

#include

int sushu(int a)

void main()

不過有個警告,int sushu(int a)要有返回值無關緊要了。

5樓:匿名使用者

呵呵,那個return 0是if(a%i==0)後的語句,用else幹嘛

怎麼用c語言判斷數是不是素數,怎麼用c語言判斷一個數是不是素數

樹又綠皮敏 解釋如下 include stdio.h include math.h main include stdio.h include math.h void main 最佳方案是用素數分佈來處理,在處理大素數時尤其合理,用算術基本定理可能太慢了。如果知道素數分佈相關知識,編出來還是很容易的,...

c語言程式設計,寫判斷素數的函式,在主函式輸入整數,輸出是否素數的資訊。幫忙看一下我寫的是不

include int main int argc,char ar else int sushu int x int i for i 2 i 可能是初學者吧 思路基本上是正確的 但是可能一些語法還沒掌握 比如 1.函式的返回值 2.for迴圈中break 3.以及區域性變數 全域性變數作用域等 只要...

用c語言寫一個判斷數字是否是素數的函式

判斷一個整數m是否是素數,只需把m被 2 m 1 之間的每一個整數去除,如果都不能被整除,那麼m就是一個素數。思路1 的 include int main elsereturn 0 判斷方法還可以簡化。m不必被 2 m 1 之間的每一個整數去除,只需被 2 之間的每一個整數去除就可以了。如果m不能被...