c語言素數判斷程序代碼,判斷素數C語言代碼

本文目錄一覽:

判斷素數的c語言程序是什麼?

基本思想:把m作為被除數,將2—INT()作為除數,如果都除不盡,m就是素數,否則就不是。

可用以下程序段實現:

voidmain()

{intm,i,k;

printf(“pleaseinputanumber:\n”);

scanf(“%d”,m);

k=sqrt(m);

for(i=2;ik;i++)

if(m%i==0)break;

if(i=k)

printf(“該數是素數”);

else

printf(“該數不是素數”);

}

將其寫成一函數,若為素數返回1,不是則返回0

intprime(m%)

{inti,k;

k=sqrt(m);

for(i=2;ik;i++)

if(m%i==0)return0;

return1;

}

擴展資料:

100-200之間的素數的個數,以及所有的素數

#includestdio.h

#includemath.h

intmain()

{

inta,m,k,i;

a=0;

for(i=101;i=200;i++)

{

for(k=2;ki;k++)

if(i%k==0)break;

if(k=i)

a++;

}

printf(“%d\n”,a);

for(i=101;i=200;i++)

{

for(k=2;ki;k++)

if(i%k==0)break;

if(k=i)

a++;

if(k=i)

printf(“%d”,i);

}

printf(“\n”);

return0;

}

C語言編程判斷m是否為素數

1、首先需要打開visual C++ 6.0,接著在裡面找到文件-新建-文件-C++ Source File選項,建設新文件。

2、接著需要在新建的頁面中輸入預處理命令和主函數:

#includestdio.h       /*函數頭:輸入輸出頭文件*/

void main()             /*空類型:主函數*/

3、為使函數正常運行,需要再定義變數並輸入一個數字,相關程序如下:

int m,i;                    /*定義變數的數據類型為整型*/

printf(“輸入一個數:”);     /*輸出文字提示*/

scanf(“%d”,m);             /*輸入一個數字*/

4、隨後需要使用for函數和if函數判斷是否是素數,具體程序如下:

  for(i=2;i=m;i++)           /*用for函數重複下面步驟*/

if(m%i==0)              /*判斷輸入的數是否能被除1和本身以外的數整除*/

break;

if(im)                 /*判斷i是否大於m*/

printf(“%d 是素數\n”,m);       /*輸出是素數*/

else

printf(“%d 不是素數\n”,m);     /*輸出不是素數*/

5、輸入完整的源代碼,運行以後,就會在運行界面中顯示判斷結果。

#includestdio.h               /*函數頭:輸入輸出頭文件*/

void main()                     /*空類型:主函數*/

{

int m,i;                    /*定義變數的數據類型為整型*/

printf(“輸入一個數:”);     /*輸出文字提示*/

scanf(“%d”,m);             /*輸入一個數字*/

for(i=2;i=m;i++)           /*用for函數重複下面步驟*/

if(m%i==0)              /*判斷輸入的數是否能被除1和本身以外的數整除*/

break;

if(im)                 /*判斷i是否大於m*/

printf(“%d 是素數\n”,m);       /*輸出是素數*/

else

printf(“%d 不是素數\n”,m);     /*輸出不是素數*/

}

求判斷素數的C語言程序

C語言-尋找素數

附代碼:

#includestdio.h

#includemath.h

int main()//原理:設ab=c,ab,則有a根號cb。若設a恆小於根號c,則只需判斷a是否為因數

{

int a, b;

printf(“請按從小到大輸入兩個素數:”);

scanf_s(“%d %d”, a, b);

int n = 0,m=0,sum = 0;

double i, j;//i是從a到b的待篩選數,j是從2到根號i的除數,要判斷j是否為i的因數

for (i = a; i = b; i++)

{

m = 0;

int c = int(pow(i, 0.5));

for (j = 2; j = c; j++)

{

if ((i / j – int(i / j)) == 0.0)

{

m++;//m是i被從2到根號i的j除了之後,商為整數,即發現j是i的因數的次數

}

}

if (m==0)

{

printf(“找到素數:%d\n”, int(i));

n++;

sum = sum + i;

}

}

printf(“大於等於%d,小於等於%d的素數的個數為:%d\n”, a, b, n);

printf(“它們的和為:%d”, sum);

return 0;

}

用C語言如何判斷素數

按照如下步驟即可用C語言判斷素數:

1、首先打開visual C++ 6.0,然後點擊左上角的文件,再點擊新建。

2、然後在彈出的新建對話框中點擊C++Source File。

3、在新建的文件文本框中輸入預處理命令和主函數,即函數頭和空類型。

4、然後再定義變數並輸入一個數字,即定義變數的數據類型,輸出文字提示,再輸入一個數字。

5、然後用for函數和if函數判斷是否是素數。

6、點擊確定後即可成功創建剛剛新建的程序,隨機輸入一個數字即可驗證一下剛剛創建的C語言。

求C語言中 判斷素數的 代碼!!!!!

基本思想:把m作為被除數,將2—INT( )作為除數,如果都除不盡,m就是素數,否則就不是。

可用以下程序段實現:

void main()

{ int m,i,k;

printf(“please input a number:\n”);

scanf(“%d”,m);

k=sqrt(m);

for(i=2;ik;i++)

if(m%i==0) break;

if(i=k)

printf(“該數是素數”);

else

printf(“該數不是素數”);

}

將其寫成一函數,若為素數返回1,不是則返回0

int prime( m%)

{int i,k;

k=sqrt(m);

for(i=2;ik;i++)

if(m%i==0) return 0;

return 1;

}

擴展資料:

篩法求素數

一、基本思想

用篩法求素數的基本思想是:

把從1開始的、某一範圍內的正整數從小到大順序排列, 1不是素數,首先把它篩掉。剩下的數中選擇最小的數是素數,然後去掉它的倍數。依次類推,直到篩子為空時結束。

如有:

1 2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30

1不是素數,去掉。剩下的數中2最小,是素數,去掉2的倍數,餘下的數是:

3 5 7 9 11 13 15 17 19 21 23 25 27 29

剩下的數中3最小,是素數,去掉3的倍數,如此下去直到所有的數都被篩完,求出的素數為:

2 3 5 7 11 13 17 19 23 29

二、C++實現

1、演算法一:令A為素數,則A*N(N1;N為自然數)都不是素數。

#define range 2000

bool

IsPrime[range+1];

/*set函數確定i是否為素數,結果儲存在IsPrime[i]中,此函數在DEV

C++中測試通過*/

void set(bool IsPrime[])

{

int i,j;

for(i=0;i=range;++i)

IsPrime[i]=true;

IsPrime[0]=IsPrime[1]=false;

for(i=2;i=range;++i)

{

if(

IsPrime[i])

{

for(j=2*i;j=range;j+=i)

IsPrime[j]=false;}}}

2、

說明:解決這個問題的訣竅是如何安排刪除的次序,使得每一個非質數都只被刪除一次。 中學時學過一個因式分解定理,他說任何一個非質(合)數都可以分解成質數的連乘積。

例如,16=2^4,18=2 * 3^2,691488=2^5 * 3^2 * 7^4等。如果把因式分解中最小質數寫在最左邊,有16=2^4,18=2*9,691488=2^5 * 21609,;

換句話說,把合數N寫成N=p^k * q,此時q當然是大於p的,因為p是因式分解中最小的質數。由於因式分解的唯一性,任何一個合數N,寫成N=p^k * q;的方式也是唯一的。

由於q=p的關係,因此在刪除非質數時,如果已知p是質數,可以先刪除p^2,p^3,p^4,… ,再刪除pq,p^2*q,p^3*q,…,(q是比p大而沒有被刪除的數),一直到pqN為止。

因為每個非質數都只被刪除一次,可想而知,這個程序的速度一定相當快。依據Gries與Misra的文章,線性的時間,也就是與N成正比的時間就足夠了(此時要找出2N的質數)。

代碼如下:

#includeiostream

#includecmath

using namespace std;

int main()

{

int N; cinN;

int *Location=new int[N+1];

for(int i=0;i!=N+1;++i)

Location[i]=i;

Location[1]=0; //篩除部分

int p,q,end;

end=sqrt((double)N)+1;

for(p=2;p!=end;++p)

{

if(Location[p])

{

for(q=p;p*q=N;++q)

{

for(int k=p*q;k=N;k*=p)

Location[k]=0;

}

}

}

int m=0;

for(int i=1;i!=N+1;++i)

{

if(Location[i]!=0)

{

coutLocation[i]” “;

++m;

}

if(m%10==0) coutendl;

}

coutendlmendl;

return 0;

}

該代碼在Visual Studio 2010 環境下測試通過。

以上兩種演算法在小數據下速度幾乎相同。

參考資料:百度百科-篩法求素數

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

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

# include stdio.h

int main(void)

{

int m;

int i;

scanf(“%d”,m);

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

{

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

break;

}

if (i == m)

printf(“YES!\n”);

else

printf(“No!\n”);

}

for循環的功能:

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

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

擴展資料:

素數定理:

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

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

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

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

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

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

參考資料來源:百度百科-質數

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245799.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:11
下一篇 2024-12-12 13:11

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有著廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29

發表回復

登錄後才能評論