C語言 判斷乙個是否素數

2021-09-24 04:47:30 字數 725 閱讀 6016

方法一:

暴力破解,缺點,速度慢

**:

#include #include #include int judge(int n)//判斷乙個數是不是素數

}if(count>0)//如果大於1,證明有2或者2以上的因子,合數

return 0;

else

return 1;

}int main()

int t=judge(number);

if(t==1)

printf("prime number!\n");

else

printf("composite number!\n");

}return 0;

}

方法1改進的地方:i++,可以寫成++i。判斷的時候,只要出現了有2或者以上的非本身的就可以break了,以此來減少遍歷時間。

方法二:

**:

#include #include #include int judge(n)//傳進來乙個數,判斷該數是不是素數

return 1;

}int main()

}

這種方法比較難想到,小於等於三的數,直接返回是素數(是沒有考慮負數和0,1)的情況的,可以再加個if語句判斷一下。所有的素數,都必須是6x-1或者6x+1。6x不是素數,6x+2、6x+3,6x+4都不是素數。只要6x+1或者6x+5(6x-1)有可能是素數。

C語言判斷乙個數是否為素數

素數又稱質數。所謂素數是指除了1和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被2 16的任一整數整除。思路1 因此判斷乙個整數m是否是素數,只需把m被 2 m 1 之間的每乙個整數去除,如果都不能被整除,那麼m就是乙個素數。思路2 另外判斷方法還可以簡化。m不必被 2 m 1 ...

C語言 判斷乙個數是否素數的函式

1.從素數的定義下手 int prime int x for i 2 i 這裡是 而非 證明了從1到它本身 1都沒有其他因數了 return0 2.從素數的定義的延申下手 根據乘法的特性,可知若從2開始遍歷到被判斷數的平方根都沒有找到能被整除的數,則這個數一定為素數。int prime int x ...

判斷乙個正整數是否素數

素數指的是只能被1和自身整除的大於1的整數 對於每個數num,並不需要從2判斷到num 1,這樣效率很低。假若乙個數可以進行因式分解,那麼分解得到的兩個數必將有乙個小於等於sqrt num 另乙個大於等於sqrt num 所以,我們只要遍歷sqrt num 即可,因為在sqrt num 左側找不到約...