當前位置:首頁 » 編程語言 » 用c語言判斷一個數是不是素數

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

發布時間: 2024-09-23 22:50:40

c語言編寫一個程序判斷一個數是否為素數急求

目的:判斷一個數是否為素數

#include<stdio.h>


intmain(void)


{


int m;


inti;


scanf("%d",&m);


for(i=2;i< m;i++) //2到(m-1)的數去除m


{


if(m%i==0)//判斷能否整除


break;

}

if(i== m)


printf("YES! ");


else


printf("No! ");


}

for循環的功能:

①若能整除,通過break跳出函數;

②若一直到m-1都不能整除,此時i再自增1到m,不滿足i< m跳出for循環,這時i= m。

(1)用c語言判斷一個數是不是素數擴展閱讀:


素數定理:



1、在一個大於1的數a和它的2倍之間(即區間(a,2a]中)必存在至少一個素數。



2、存在任意長度的素數等差數列。



3、一個偶數可以寫成兩個合數之和,其中每一個合數都最多隻有9個質因數。(挪威數學家布朗,1920年)。



4、一個偶數必定可以寫成一個質數加上一個合成數,其中合數的因子個數有上界。(瑞尼,1948年)。



5、一個偶數必定可以寫成一個質數加上一個最多由5個因子所組成的合成數。後來,有人簡稱這結果為(1+5)(中國潘承洞,1968年)。



6、一個充分大偶數必定可以寫成一個素數加上一個最多由2個質因子所組成的合成數。簡稱為(1+2)。

㈡ C語言如何判斷素數

遍歷2到100之間所有整數,然後逐一判斷是否為素數,如果是則存入數組。

最終遍歷數組輸出每個值即可。 具體如下:


1、素數的判斷。

根據素數定義,除了1和本身不存在其它約數的正整數為素數。

所以在C語言中判斷n是否為素數可以從2開始到到n-1逐一嘗試,如果可以整除說明不是素數。

更進一步,可以從2判斷到n/2或者n的算術平方根,如果不存在約數,那麼即為素數。

除此以外,判斷素數的演算法還有素數篩等。

2、判斷素數的函數:

以遍歷判斷約數的方法為例,函數可以編寫如下:

intisPrime(intn)//判斷n是否為素數,如果是則返回1,否則返回0.
{
inti;
for(i=2;i<=(int)sqrt(n);i++)//從2到算術平方根遍歷。
if(n%i==0)return0;//存在約數,不是素數,返回0.
return1;//不存在約數,返回1,表示為素數。
}

3、整體代碼示例:

#include<stdio.h>
#include<math.h>
intisPrime(intn)//之前的函數。
{
inti;
for(i=2;i<=(int)sqrt(n);i++)
if(n%i==0)return0;
return1;
}
intmain()
{
intn;
inta[100];
intcnt=0;

for(n=2;n<=100;n++)//遍歷2到100所有整數。
if(isPrime(n))//判斷是素數
a[cnt++]=n;//存入數組。
for(n=0;n<cnt;n++)//遍歷存放素數的數組。
printf("%d",a[n]);//輸出。
printf(" ");

return0;
}

運行結果如下:

㈢ c語言判斷是不是素數的程序

1、首先打開CodeBlocks,創建一個新項目。

㈣ 用C語言編寫一個程序,設計一個判斷素數的函數

1.素數是一個大於1的自然數,除了1和它本身外,不能被其他培櫻自然數整除,換句話說就是該數除了1和它本身以外型攔不再有其他的因數;

2.在數據處理時只需要判讀他的因子除了1和他本身就行了,而且只用計算到 這個數的開方就行了,因為後面的因子和前面的就會倒過來。如同 24 -> 2 x 12 和 12 x 2 一樣。

#include<stdio.h>

intIsPrime(intn)//判斷是否為素數
{
if(n<=1)return0;
if(n%2==0)returnn==2;//如果是偶卜中胡數,只要不是2,其他都是非素數

for(inti=3;;i+=2)
{
if(i>n/i)break;//等價於i*i>n,不用開方
if(n%i==0)return0;
}
return1;
}

intmain()
{
inti,cnt=0;
for(i=1;i<100;i++)
{
if(IsPrime(i))
{
printf("%3d",i);
if(++cnt%5==0)//每5個換行
printf(" ");
}
}
return0;
}


㈤ c語言如何判斷一個數是整數還是素數

以下是判斷代碼:
#include <math.h>
#include <stdio.h>

int is_prime(int num) {
if (num <= 1) {
return 0; // 小於等於1的數不是素數
}
if (num <= 3) {
return 1; // 2和3是素數
}
if (num % 2 == 0 || num % 3 == 0) {
return 0; // 排除能被2或3整除的數
}
// 只需檢查到sqrt(num),因為如果num有因子,必有一個小於等於它的算術平方根
for (int i = 5; i * i <= num; i += 6) {
if (num % i == 0 || num % (i + 2) == 0) {
return 0; // 若能被5或者能被5+2整除的數,不是素數
}
}
return 1; // 其他情況是素數
}

int main() {
int number;
printf("Enter an integer: ");
scanf("%d", &number);

if (is_prime(number)) {
printf("%d is a prime number.\n", number);
} else {
printf("%d is not a prime number.\n", number);
}

return 0;
}

㈥ 用C語言編寫判斷一個數是否是素數的程序

1、打開ubuntu並開啟一個終端,輸入命令vim is_prime.c,打開編輯頁面,輸入預處理指令#includestdio.h用於在主函數中調用判斷函數。然後定義一個函數int is_prime(int n),即判斷整數n是否為素數。
2、首先,判斷這個數是否小於2.若是,則直接返回0,即表示它不是一個素數。
3、然後定義中間的因數i,初始值為2。依次使n對i取余數,看n能否整除i,然後令i自增直到i的平方大於n。在這過程中,如果遇到n能整除i,則說明n不是一個素數。如果循環能夠直到i的平方大於n才結束,說明n是一個素數。
4、接下來,我們使用主函數進行測試,使用printf(%d : %dn, n, is_prime(n))的格式進行輸出。如果輸出結果為0,說明不為素數;結果為1,說明是一個素數。
測試的數據依次是2,4,9,15, 17, 23, 25。
5、退出編輯器vim,然後使用gcc編譯並運行它,得到結果。通過結果我們可以看出,預期的結果與我們對於素數的認知是相同的,說明我們的程序編寫沒有錯誤。以下是所有的源代碼:
#include stdio.h
//判斷一個數是否為素數的函數定義
int is_prime(int n)
{
//判斷n是否小於2.若小於則直接返回0
//表示n不是一個素數
if(n
2)
return 0;
//定義一個中間變數i,初始化i=2
int i = 2;
//依次判斷每一個不大於根號n的i是否能被n整除
for(i = 2; i * i = n;i++)
{
//如果能夠整除
if(n % i == 0)
//直接返回0,表示n不是一個素數
return 0;
}
//如果程序運行到這里,說明i*i大於n
//說明n是一個素數
return 1;
}
int main()
{
printf(%d : %dn, 2, is_prime(2));
printf(%d : %dn, 4, is_prime(4));
printf(%d : %dn, 9, is_prime(9));
printf(%d : %dn, 15, is_prime(15));
printf(%d : %dn, 17, is_prime(17));
printf(%d : %dn, 23, is_prime(23));
printf(%d : %dn, 25, is_prime(25));
return 0;
}
工具/材料
ubuntu,vim,gcc

熱點內容
雲電腦伺服器限制 發布:2024-09-24 01:08:31 瀏覽:863
現在什麼安卓手機打和平精英 發布:2024-09-24 00:48:29 瀏覽:946
銀耳演算法 發布:2024-09-24 00:36:52 瀏覽:77
ftp設置代理 發布:2024-09-24 00:36:50 瀏覽:279
查詢資料庫的名稱 發布:2024-09-24 00:30:07 瀏覽:677
安卓盒子火棒神盾哪個好 發布:2024-09-24 00:29:34 瀏覽:661
java學生管理系統代碼 發布:2024-09-23 23:57:43 瀏覽:921
mac電腦代理伺服器要求輸入用戶名和密碼 發布:2024-09-23 23:31:03 瀏覽:325
鴻蒙系統跟安卓到底有什麼區別 發布:2024-09-23 23:01:48 瀏覽:9
php自動斜杠 發布:2024-09-23 23:01:45 瀏覽:99