1樓:黃河水十八彎
方法一、用試除法判斷一個自然數a是不是質數時,用各個質數從小到大依次去除a,如果到某一個質數正好整除,這個a就可以斷定不是質數;如果不能整除,當不完全商又小於這個質數時,就不必再繼續試除,可以斷定a必然是質數.
方法二、只要找出x為一個奇數和一個偶數平方差的形式(這是一定的)便可以a2-b2=(a+b)(a-b)便是兩個因數。
例如26341,先找出比26341大的一個偶平方數,26896,與它的差是555,肯定不是平方數,再下一個平方數(其實考慮到(x+1)^2=x2+2x+1,因此直接將原數加上2x+1就行了,用不著算x+1的平方),27556, 差1215,也不是,然後28224個位與1的差為3,直接排除,下一個2559也不是(一看就知道它等於50^2+59)。再下個差為3直接排出,再下個、再再下個……找出規律來就很快了,最後221^2=48841,48841-26341=22500,很明顯22500=150^2,就分解出來了26341=71×371
2樓:百度文庫精選
內容來自使用者:kettykettykett判斷一個數是否為素數。
#include
#include
void main( )
求100-200間的所有素數;
#include
#include
void main( )
if(n%10= =0)
printf(“\n”);
}printf(“\n”);} ?
函式:#include
void disp(x)
int x;
main( )
3樓:怎麼打拿什麼打
我真的不知道你們在說啥,除1和本身之外不能被整除是真的有問題,2可以被4整除啊,後來我才發現,是要用奇數來除的,難怪9沒有,9可以除3
4樓:戴琪呂曼冬
比如你現在有數n要判斷是不是質數
boolean
isprime
=true;
for(i=2;
i<=n/2;
i+=2)
}到這裡,這個isprime就能幫你判斷n是不是質數
5樓:
假設該數為n,
如果n能被2~(根號n)的任一整數整除,則n為合數,否則n為素數。
這是因為,合數m總有一個不大於(根號m)的非平凡因子。
6樓:磨年
素數也稱質數,只有1和它本身兩個約數的數叫做素數。
7樓:匿名使用者
你看可以被除了1和它自己本身以外的數整除不?
8樓:空水明月
只能被一和這個數本身整除(既商沒有餘數)
9樓:匿名使用者
只能用比它小的整數一個一個地試除,能整除的就不是素數。
10樓:匿名使用者
素數是除開本身和一之外就不可以整除的數
象 1 3 5
11樓:踏平曰本
靠,1不是素數。別被誤導了哦。
最簡單的方法就是:依次除比它的平方根小的其他素數。
12樓:康楊
判斷一個數是否為素數。
#include
#include
void main( )
13樓:見雪天姬
素數?????????
怎樣判斷一個數是不是質數?
14樓:暴走少女
1、查表法:
主要是指查“質數表”。編制質數表的過程是:按照自然數列,第一個數1不是質數,因此要除外,然後按順序寫出2至100的所有自然數,這些數中2是質數,把它留下,把2後面所有2的倍數劃去,2後面的3是質數,接著再把3後面所有3的倍數劃去,如此繼續下去,剩下的便是100以內的全部質數。
2、試除法:
在手頭上沒有質數表的情況下,可以用試除法來判斷一個自然數是不是質數。例如判斷143、179是不是質數,就可以按從小到大的順序用2、3、5、7、11……等質數去試除。一般情況下用20以內的2、3、5、7、11、13、17、19這8個質數去除就可以了。
如143,這個數的個位是3,排除了被2、5整除的可能性,它各位數字的和是1+4+3=8,也不可能被3整除,通過口算也證明不能被7整除,當試除到11時,商正好是13,到此就可以斷定143不是質數。
擴充套件資料:
一、質數的相關性質
1、質數p的約數只有兩個:1和p。
2、初等數學基本定理:任一大於1的自然數,要麼本身是質數,要麼可以分解為幾個質數之積,且這種分解是唯一的。
3、質數的個數是無限的。
4、質數的個數公式π(n)是不減函式。
5、若n為正整數,在n²到(n+1)²之間至少有一個質數。
6、若質數p為不超過n(n≥4) 的最大質數,則p>n/2。
7、所有大於10的質數中,個位數只有1,3,7,9。
二、相關應用
質數被利用在密碼學上,所謂的公鑰就是將想要傳遞的資訊在編碼時加入質數,編碼之後傳送給收信人,任何人收到此資訊後,若沒有此收信人所擁有的金鑰,則解密的過程中(實為尋找素數的過程),將會因為找質數的過程(分解質因數)過久,使即使取得資訊也會無意義。
在汽車變速箱齒輪的設計上,相鄰的兩個大小齒輪齒數設計成質數,以增加兩齒輪內兩個相同的齒相遇齧合次數的最小公倍數,可增強耐用度減少故障。
15樓:匿名使用者
根據質數的定義,在判斷一個數n是否是質數時,只要用1至n-1去除n,看看能否整除即可。
還有更好的辦法:先找一個數m,使m的平方大於n,再用小於等於m的質數去除n(n為被除數),如果都不能整除,則n必然是質數。如我們要判斷1993是不是質數,50*50>1993,那麼只要用1993除以<50的質數看是否能整除,若不能即為質數。
100以內的質數有25個,還是比較好記的,只要記熟100以內質數,就可以快速判斷10000以內的數是不是質數。
100以內的質數有2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97,在100內共有25個質數。
只有1和它本身兩個因數的自然數,叫質數(或稱素數)。(如:由2÷1=2,2÷2=1,可知2的因數只有1和它本身2這兩個約數,所以2就是質數。
與之相對立的是合數:“除了1和它本身兩個因數外,還有其它因數的數,叫合數。”如:
4÷1=4,4÷2=2,4÷4=1,很顯然,4的因數除了1和它本身4這兩個因數以外,還有因數2,所以4是合數。)
16樓:沒名的精靈
根據質數的定義,在判斷一個數是否是質數時,只要用1至n-1去除n,看看能否整除即可。
17樓:鞽鞽
輾轉相除 的方法是判斷兩個數是否互質。
所以判斷是不是質數是行不通的。
應該用質數去嘗試,試到兩個緊挨這的數的時候,還沒有成功,就不要再試了,這個數就是質數。
沒有其他更好的方法,要是有我就會非常非常高興了!!^_^
18樓:
判斷一個數
是質數還是合數,那麼:
1:當這個數大於7時:就用這個數分別取除以2,3,5,7.如果這個數除以2,3,5,7都除不盡那麼這個數就是質數,只要這個數能除盡2,3,5,7的任何一個數那麼這個數就是合數.
2:當這個數小於等於7時你就只需要記得2,3,5,7是質數就行了.
19樓:heh巨蟹
質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。
輾轉相除法是判斷兩個數是否互質的,而不是應用在一個數上,是求兩個數的大公約數。
輾轉相除法的具體做法:用較小數除較大數,再用出現的餘數(第一餘數)去除除數,再用出現的餘數(第二餘數)去除第一餘數,如此反覆,直到最後餘數是0為止。如果是求兩個數的最大公約數,那麼最後的除數就是這兩個數的最大公約數。
這是具體流程圖,判斷一個數是否是質數就是看它能否被除1以外的數整除。
20樓:匿名使用者
約數是成對出現的。比如24,你找到個約數3,那麼一定有個約數8,因為24/3=8。
然後,這對約數必須一個在根號n之前,一個在根號n之後。因為都在根號n之前的話,
乘積一定小於n(根號nx根號n=n),同樣,都在根號n之後的話,乘積一定大於n。
所以,如果你在根號n之前都找不到約數的話,那麼根號n之後就不會有了。
21樓:匿名使用者
一個數,如果只有一和它本身的兩個因數這樣的數叫做質數
22樓:lv呂虎成
好像是除了1,2以外只要不被2,3,5,49整除的數都是質數
23樓:聆聽雨菲
質數就是在所有比1大的整數中,除了1和它本身以外,不再有別的約數,這種整數叫做質數或素數。還可以說成質數只有1和它本身兩個約數。簡單的說,就是這個數只能整除1和本身.
24樓:游擊隊副隊長
只能被1和它本身整除
25樓:裡先明
?(*^ω^*)123457890
如何用c語言程式設計判斷一個數是不是素數?
26樓:問明
方法一:
#include<stdio.h>
int main(){
int i,j;
printf("請輸入一個正整數。\n");
scanf("%d",&i);
if(i<2)
printf("小於2,請重新輸入。\n");
elseif(i%2==0)
printf("%d不是一個素數。\n",i);
else{
for(j=2;j<=i/2;j++){
if(i%j==0){
printf("%d不是一個素數。\n",i);
break;
}if(j>i/2){
printf("%d是一個素數。\n",i);
break;}}
}}方法二:
#include<stdio.h>
int main(){
int a=0;
int num=0;
scanf("%d",&num);
for(inti=2;i<num-1;i++){if(num%i==0){
a++;}}
if(a==0){
printf("yes\n");
}else{
printf("no\n");}}
方法三:
#include"stdio.h"
int main(){
printf("\t\t\t\t\thelloworld\n");
int a,i;
do{printf("inputnumberjudgeprimenumber:\n");
scanf("%d",&a);
for(i=2;i<a;i++)
if(a%i==0)break;
if(i==a)
printf("%d是素數\n",a);
else
printf("%d不是素數\n",a);
}while(a!=0);}
27樓:風若遠去何人留
判斷素數的方法很多。
以數學方法為例,按照數學規則,如果在2~n-1中存在因子,則n不是素數。否則n為素數。
int is_prime(int n)//判斷n是否為素數。
在此基礎上,可以將判斷範圍優化為i <= n/2 或i <=sqrt(n)(sqrt為算數平方根函式)。
這樣可以減少判斷次數,提高效率。
怎麼用c語言判斷數是不是素數,怎麼用c語言判斷一個數是不是素數
樹又綠皮敏 解釋如下 include stdio.h include math.h main include stdio.h include math.h void main 最佳方案是用素數分佈來處理,在處理大素數時尤其合理,用算術基本定理可能太慢了。如果知道素數分佈相關知識,編出來還是很容易的,...
如何能判斷固態硬碟是不是壞了,如何能判斷一個固態硬碟是不是壞了
立港娜娜 通過以下方法可以判斷固態硬碟是否壞了 1 bios能準確識別到ssd,並且容量等引數正確。2 系統中磁碟管理器能識別到ssd,並且容量,硬碟模式引數正確。3 對ssd可以進行初始化,分割槽,格式化操作,其中任何操作無法進行,都證明ssd損壞 有可能是壞道 4 能夠對ssd進行讀寫。 女王丶...
如何判斷女人是不是真心想離婚,如何判斷一個女人是不是真心想離婚
真心對你好的女人會告訴你,就是不告訴你,也不代表她不好吧?如果你真心愛她,何必糾結她的過去?按照你這樣的問她,意思是看不起離婚的女人嗎?如果每個男人都嫌棄離婚的女人,全國離婚的女人就只能單身了,男多女少的時代,單身漢更多,所以我覺得你沒有必要糾結是否離婚,男女相差幾千萬,能娶到離婚的女人好過做單身狗...