方法一:
暴力破解,缺點,速度慢
**:
#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 左側找不到約...