導航:首頁 > 編程語言 > 判斷是否為素數編程

判斷是否為素數編程

發布時間:2022-04-16 09:17:33

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

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

Ⅱ 判斷是否是素數編程

#include<stdio.h>

int fun(int x)

{

for(int i=2;i<x;i++)

if(x%i==0)

return 0;

return 1;//是素數返回值為 1;

}

int main()

{

int n;

scanf("%d",&n);

if(n<2)

{

while(1)//無限循環,不執行break一直循環;

{

printf("輸入錯誤;請重新輸入 ");

scanf("%d",&n);

if(n>=2)

{

printf("輸入正確;開始判斷 ");

if(fun(n))

{

printf("%d is a prime number.",n);

break;

}

else

{

printf("%d is not a prime number.",n);

break;

}

}

}

}

else//n>=2時的素數判斷;

{

if(fun(n))

printf("%d is a prime number.",n);

else

printf("%d is not a prime number.",n);

}

return 0;


}

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

  1. 思路1:

    判斷一個整數m是否是素數,只需把m被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼m就是一個素數。代碼如下:
    #include <stdio.h>
    int main(){
    int a=0; // 素數的個數
    int num=0; // 輸入的整數
    printf("輸入一個整數:");
    scanf("%d",&num);
    for(int i=2;i<num;i++){
    if(num%i==0){
    a++; // 素數個數加1
    }
    }
    if(a==0){
    printf("%d是素數。 ", num);
    }else{
    printf("%d不是素數。 ", num);
    }
    return 0;
    }

  2. 思路2:

    另外判斷方法還可以簡化。m不必被 2 ~ m-1 之間的每一個整數去除,只需被 2 ~ 之間的每一個整數去除就可以了。如果m不能被 2 ~ 間任一整數整除,m必定是素數。例如判別17是是否為素數,只需使17被2~4之間的每一個整數去除,由於都不能整除,可以判定17是素數。代碼如下:

    #include <stdio.h>
    #include <math.h>
    void main(){
    int m; // 輸入的整數
    int i; // 循環次數
    int k; // m 的平方根
    printf("輸入一個整數:");
    scanf("%d",&m);
    // 求平方根,注意sqrt()的參數為 double 類型,這里要強制轉換m的類型
    k=(int)sqrt( (double)m );
    for(i=2;i<=k;i++)
    if(m%i==0)
    break;
    // 如果完成所有循環,那麼m為素數
    // 注意最後一次循環,會執行i++,此時 i=k+1,所以有i>k
    if(i>k)
    printf("%d是素數。 ",m);
    else
    printf("%d不是素數。 ",m);
    return 0;
    }

Ⅳ c++判斷輸入的數是否為素數,如何編程

#include
<iostream>
using
namespace
std;
#include
<math.h>
//此為數學函數庫。程序中要用到數學函數時必須包含此語句。
void
f(int
n)
//此函數只判斷是否為素數。
{
int
i,j=0;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
j++;
//j在這里只起標識作用,若為0不變則說明是素數,否則為非素數。
if(n==0||n<0)
cout<<"數據錯誤!"<<"\a"<<endl;
//「0和負數」顯然不是處理的對象。
else
if(n==1)
cout<<"這個數不是素數。"<<endl;
//「1」要特殊處理。
else
{
if(j==0)
cout<<"這個數是素數。"<<endl;
else
cout<<"這個數不是素數。"<<endl;
}
}
int
main()
{
int
n;
cout<<"請輸入要檢驗的整數:"<<endl;
cin>>n;
f(n);
return
0;
}

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

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

Ⅵ 用c++編程:輸入一個數,判斷其是不是素數

#include<stdio.h>

int main()

{

int m, n;

printf("請輸入一個正整數: ");

scanf_s("%d", &m);

for (n=2; n < m - 1; n = n + 1)

if (m % n == 0)

break;

if (n < m)

printf("%d不是素數 ",m);

else

printf("%d是素數 ",m);

}

(6)判斷是否為素數編程擴展閱讀

C語言中條件判斷語句if和switch的用法

用 if 語句可以構成分支結構,它根據給的條件進行判定,以決定執行哪個分支程序段。首先要注意switch 的語法結構,不能有錯誤。

整形表達式的結果值如果等於值1,就執行語句1,如果等於值2,就執行語句2,如果表達式的值與任何 case 都不一樣的話,那麼就會執行 default 後面的默認語句,也可以沒有默認語句,最後結束整個 switch 語句。

注意每個語句後面的 break,如果沒有 break,break 會跳出當前的 case 語句,從而跳出整個 switch 語句。case 後面的標簽只能是整形常量或者整形常量表達式,不能用變數作為 case 的標簽。

Ⅶ 如何用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語言編程判斷輸入的正整數是否為素數。

將:for(k=2;k<=x[i]-1;k++)改成:for(g=0,k=2;k<=x[i]-1;k++)主要是在這個for循環前令g=0。

因為輸入的不止一個數,開頭的初始化g=0,在第一個數的時候就可能已經被改了。後面的數不重新初始化g=0,就不能保證對了。

判斷一個正整數n是不是素數的思路:

思路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 之間有無因子即可。

正確代碼如下:

#include<math.h>/*sqrt*/

#include<stdio.h>/*scanf,printf,system*/

int isPrime(int n)//判斷n是否為素數,如果是則返回1,否則返回0。

{

if(n<=1)return 0;//小於等於1直接退出。

int i;

for(i = 2; i <= (int)sqrt(n); i ++)//從2到算術平方根遍歷。

if(!(n%i)) return 0;//存在約數,不是素數,返回0。

return 1;//不存在約數,返回1,表示為素數。

}

main ()

{

int num;

scanf ("%d", &num);

if ( isPrime( num) )//num是素數。

printf ("%d is a prime",num);

else

printf ("%d isn't a prime",num);//num不是素數。

system("PAUSE");//暫停界面。

return 0;

}

(8)判斷是否為素數編程擴展閱讀:

輸入一個正整數或0,判斷是否為質數:

#include "stdio.h"

int main()

{

while(1)

{

int n,flag,i;

printf("請輸入一個數:");

scanf("%d",&n);

flag = n/2+1;

if(n==0||n==1)

printf("%d既不是質數也不是合數 ",n);

else if(n==2)

printf("%d是質數 ",n);

else

{

for(i=2;i<=flag;i++)

{

if((n%i)==0)

{

printf("%d不是質數,是合數 ",n);

break;

}

if(i==flag&&(n%i)!=0)

printf("%d是質數 ",n);

}

}

}

}



Ⅸ 判斷一個數是否是素數的程序講解

素數又稱質數。所謂素數是指除了1和它本身以外,不能被任何整數整除的數。

該代碼的基本思路為:如果m不能被2~它的平方根中的任一數整除,m必定是素數。

代碼解析如下:

main()

{

int m; // 輸入的整數

int i; // 循環次數

int k; // m 的平方根

scanf(%d,&m); //輸入m

k=sqrt(m); //對m開方賦給k

for(i=2;i<=k;i++) //從2到k依次加1循環

if(m%i==0)break;//當m可以整除i時,退出,不整除,說明是素數

if(i>=k+1)

printf(%d is a prime number ,m);//i不小於k+1時,m是素數,否則,m不是素數

else

printf(%d is not a prime number ,m);

}

(9)判斷是否為素數編程擴展閱讀:

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

代碼及解析如下:

#include <stdio.h>

int main(){

int a=0; // 素數的個數

int num=0; // 輸入的整數

printf("輸入一個整數:");

scanf("%d",&num);

for(int i=2;i<num;i++){

if(num%i==0){

a++; // 素數個數加1

}

}

if(a==0){

printf("%d是素數。 ", num);

}else{

printf("%d不是素數。 ", num);

}

return 0;

}

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

(10)判斷是否為素數編程擴展閱讀:


素數定理:



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



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



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



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



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



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

閱讀全文

與判斷是否為素數編程相關的資料

熱點內容
php獨立運行 瀏覽:530
手機sh執行命令 瀏覽:727
雲伺服器的角色 瀏覽:733
單片機頻率比例 瀏覽:840
我的世界伺服器如何關閉正版驗證 瀏覽:504
如何查roid伺服器上的 瀏覽:130
安卓手機主板如何撬晶元不掉電 瀏覽:249
php各個框架的優缺點 瀏覽:101
php1100生成數組 瀏覽:359
以後做平面設計好還是程序員好 瀏覽:552
雲伺服器應用管理 瀏覽:438
飢荒雲伺服器搭建過程 瀏覽:186
可編程式控制制器優點 瀏覽:99
壓縮垃圾車說明書 瀏覽:28
五輪書pdf 瀏覽:802
單片機定時流水中斷系統流水燈 瀏覽:701
u8如何連接伺服器配置 瀏覽:66
動力在於緩解壓力 瀏覽:867
報考科一用什麼app 瀏覽:346
knn人臉識別演算法 瀏覽:431