當前位置:首頁 » 編程語言 » C語言高效判斷素數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

C語言高效判斷素數

發布時間: 2023-01-30 04:02:00

❶ 用c語言的編程:利用調用函數,判斷一個數是否是素數。

1、首先需要打開vs軟體工程,准備好一個空白的C語言文件,引入頭文件,主函數中暫時沒有內容:

❷ 用C語言如何判斷素數

素數又稱質數,所謂素數是指除了 1 和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被 2~16 的任一整數整除。

思路1、判斷一個整數m是否是素數,只需把 m 被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼 m 就是一個素數。

思路2、判斷方法還可以簡化。

m 不必被2~m-1之間的每一個整數去除,只需被2~√m之間的每一個整數去除就可以了。如果 m 不能被2~√m間任一整數整除,m必定是素數。例如判別17是是否為素數,只需使17被2~4之間的每一個整數去除,由於都不能整除,可以判定17是素數。


原因:因為如果m能被2~m-1之間任一整數整除,其二個因子必定有一個小於或等於√m,另一個大於或等於√m。

例如16能被2、4、8整除,16=2*8,2小於 4,8大於4,16=4*4,4=√16,因此只需判定在2~4之間有無因子即可。


兩種思路的代碼請看解析。

拓展資料:

素數(prime number)又稱質數,有無限個。素數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。

C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

網路——C語言

❸ C語言判斷素數

同學你好!
你這里的問題有幾個:
1.頭文件錯誤;
2.printf後面不跟分號;
3.for語句邏輯錯誤;
下面是我改過的:(結果正確)
#include<stdio.h>

main()
{
int m,i,k;
scanf("%d",&m);
k=m;
for(i=2;i<k;i++)/*注意這里!這里的限制條件出錯了!*/
if(m%i==0)
break;
if(i>=k)/*這里也是*/
printf("%d是素數",m);/*原來你這里少了;*/
else
printf("%d是合數",m);
}

希望我的回答對你有幫助,祝你的成績進步!

❹ 如何用c語言編程判斷一個數是不是素數

方法一:

#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);

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

工具/材料

ubuntu,vim,gcc

  • 01

    打開ubuntu並開啟一個終端,輸入命令vim is_prime.c,打開編輯頁面,輸入預處理指令#include<stdio.h>用於在主函數中調用判斷函數。然後定義一個函數int is_prime(int n),即判斷整數n是否為素數。

  • 02

    首先,判斷這個數是否小於2.若是,則直接返回0,即表示它不是一個素數。

  • 03

    然後定義中間的因數i,初始值為2。依次使n對i取余數,看n能否整除i,然後令i自增直到i的平方大於n。在這過程中,如果遇到n能整除i,則說明n不是一個素數。如果循環能夠直到i的平方大於n才結束,說明n是一個素數。

  • 04

    接下來,我們使用主函數進行測試,使用printf("%d : %d ", n, is_prime(n))的格式進行輸出。如果輸出結果為0,說明不為素數;結果為1,說明是一個素數。
    測試的數據依次是2,4,9,15, 17, 23, 25。

  • 05

    退出編輯器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 : %d ", 2, is_prime(2));
    printf("%d : %d ", 4, is_prime(4));
    printf("%d : %d ", 9, is_prime(9));
    printf("%d : %d ", 15, is_prime(15));
    printf("%d : %d ", 17, is_prime(17));
    printf("%d : %d ", 23, is_prime(23));
    printf("%d : %d ", 25, is_prime(25));
    return 0;
    }

❻ C語言判斷素數

1、判斷相等用==,一個=是賦值符號

2、你的程序中沒有對2進行判斷,會認為2不是素數

修改代碼如下,修改位置注釋給出

#include<stdio.h>
intmain()
{
intr,flag=1,n,i=2;
printf("請輸入:");
scanf("%d",&n);
do
{
r=n%i;
if(r==0&&n!=2)/////////////
flag=0;
i=i+1;
}
while(flag==1&&i<=n-1);/////////////
if(flag==1)//////////////////
printf("素數");
else
printf("非素數");
return0;
}

❼ 編寫一個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。

(7)C語言高效判斷素數擴展閱讀:


素數定理:



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



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



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



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



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



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

❽ 求一個C語言的快速驗證素數方法

先讀入所有數據, 最大的叫做N, 做一個表, 從0到N, 內容都寫0

然後從2開始到sqrt(N),把每個質數的倍數在表中標記成1(所謂質數,就是表中標記為0的數)

標記結束後看錶的內容就知道這些數是不是質數。 t[a]是1的話a就是合數,是0 a就是質數

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

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