素數是什麼數?
素數是什麼
質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。
百科裡有說:baike.baidu.com/view/1767.htm
有網絡,要搜索。
C語言中的素數是什麼意思?
素數是隻能被1和它本身整除的 數。
實現代碼:
#include
int main(void)
{
int i, n = 2;
printf("請輸入一個數:\n");
scanf("%d", &i);
while (1)
{
if (i%n == 0)
{
break;
}
n++;
}
if (n == i)
{
printf("這個數是素數!");
}
else
{
printf("這個數不是素數!");
}
return 0;
}
質數和和數是什麼
質數是除了1和它本身之外,不能被其他數整除的正整數,又稱素數。
質數和合數的區別在於因數的個數,質數只有2個因數,合數有多於2個因數。
除1,0以外不是質數的正整數就是合數。
"0"“1”既不是質數也不是合數。
什麼是素數?
質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。換句話說,只有兩個正因數(1和自己)的自然數即為素數。比1大但不是素數的數稱為合數。1和0既非素數也非合數。素數在數論中有著很重要的地位
1是質數麼
一個數,如果只有1和它本身兩個因數,這樣的數叫質數(或素數)。如2、3、5、7都是質數。
一個數,如果除了1和它本身還有別的因數,這樣的數叫合數。如4、6、15、49都是合數。
1既不是質數,也不是合數。
很高興能為你提供回答
用C語言如何編寫一個判斷一個數是否是素數? 5分
需要自己根據素數的數學定義,自行書寫素數判斷函數並調用。
1、素數的判斷。
根據素數定義,除了1和本身不存在其它約數的正整數為素數。
所以在C語言中判斷n是否為素數可以從2開始到到n-1逐一嘗試,如果可以整除說明不是素數。
更進一步,可以從2判斷到n/2或者n的算術平方根,如果不存在約數,那麼即為素數。
除此以外,判斷素數的算法還有素數篩等。
2、函數編寫:
以遍歷判斷約數的方法為例,函數可以編寫如下:
int isPrime(int n)//判斷n是否為素數,如果是則返回1,否則返回0.{ int i; for(i = 2; i <= (int)sqrt(n); i ++)//從2到算術平方根遍歷。 if(n%i == 0) return 0;//存在約數,不是素數,返回0. return 1;//不存在約數,返回1,表示為素數。}3、以輸入一個整數值,判斷是否為素數,並輸出結果,完整程序如下:
#include
質數是什麼意思?
什麼是質數?就是在所有比1大的整數中,除了1和它本身以外,不再有別的約數,這種整數叫做質數,質數又叫做素數。還可以說成質數有兩個約數。這終規只是文字上的解釋而已。能不能有一個代數式,規定用字母表示的那個數為規定的任何值時,所代入的代數式的值都是質數呢?
質數的分佈是沒有規律的,往往讓人莫名其妙。如:101、401、601、701都是質數,但上下面的301(7*43)和901(17*53)卻是合數。
有人做過這樣的驗算:1^2+1+41=43,2^2+2+41=47,3^2+3+41=53……於是就可以有這樣一個公式:設一正數為n,則n^2+n+41的值一定是一個質數。這個式子一直到n=39時,都是成立的。但n=40時,其式子就不成立了,因為40^2+40+41=1681=41*41。
被稱為“17世紀最偉大的法國數學家”費爾馬,也研究過質數的性質。他發現,設Fn=2^(2^n),則當n分別等於0、1、2、3、4時,Fn分別給出3、5、17、257、65537,都是質數,由於F5太大(F5=4292967297),他沒有再往下檢測就直接猜測:對於一切自然數,Fn都是質數。但是,就是在F5上出了問題!費爾馬死後67年,25歲的瑞士數學家歐拉證明:F5=4292967297=641*6700417,並非質數,而是合數。
更加有趣的是,以後的Fn值,數學家再也沒有找到哪個Fn值是質數,全部都是合數。目前由於平方開得較大,因而能夠證明的也很少。現在數學家們取得Fn的最大值為:n=1495。這可是個超級天文數字,其位數多達10^10584位,當然它儘管非常之大,但也不是個質數。質數和費爾馬開了個大玩笑!
17世紀還有位法國數學家叫梅森,他曾經做過一個猜想:2^p-1代數式,當p是質數時,2^p-1是質數。他驗算出了:當p=2、3、5、7、17、19時,所得代數式的值都是質數,後來,歐拉證明p=31時,2^p-1是質數。 p=2,3,5,7時,Mp都是素數,但M11=2047=23×89不是素數。
還剩下p=67、127、257三個梅森數,由於太大,長期沒有人去驗證。梅森去世250年後,美國數學家科勒證明,2^67-1=193707721*761838257287,是一個合數。這是第九個梅森數。20世紀,人們先後證明:第10個梅森數是質數,第11個梅森數是合數。質數排列得這樣雜亂無章,也給人們尋找質數規律造成了困難。
工 現在,數學家找到的最大的梅森數是一個有9808357位的數:2^32582657-1。數學雖然可以找到很大的質數,但質數的規律還是無法循通。
c語言中判斷一個正整數是否為素數,若是素數則輸出該素數,若不是則輸出該數所有的因子
普通判斷素數,只要找到因數時就會用break結束判斷,這裡就用個標誌來表明找到了因數而繼續找下一個因素即可,最後根據標誌來判斷是否素數。另外,由於m/2一般會稍大於根號m所以用這個取代調用sqrt函數,如果要調用要寫:k=sqrt((double)m);。
#include
void main()
{ int i,k,m,a;
printf("請輸入一個一個整數 :");
scanf("%d",&m);
for ( i=2,a=1;i
if ( a ) printf("%d是一個素數\n",m); else pritf("\n");
}