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

c語言實現質數判斷

發布時間: 2022-09-11 13:49:37

⑴ 用c語言編寫一個程序,判斷輸入的數是否是素數(質數)。

#include <stdio.h>
#include <math.h>

int main()
{
int i,j,n,flag;
int num;
/* 判斷輸入的數是否是素數 */
printf("請輸入一個正整數:");
scanf("%d", &num);
for(i=2,flag=1; i<=(int)sqrt(num);i++)
{
if(num % i ==0)
{
flag=0;
break;
}
}
if(flag==1)
printf("%d 是一個素數。\n\n", num);
else
printf("%d 不是一個素數。\n\n", num);

/* 列出2~1000之間個位數是3或7的素數 */
printf("2~1000之間個位數是3或7的素數:\n");
for(i=2; i<1000;i++)
{
for(j=2,flag=1; j<=(int)sqrt(i); j++)
if(i%j==0)
{
flag=0;
break;
}
if(flag==1 && (i%10==3 || i%10==7))
printf("%d\t",i);
}

/* 輸出10個2~1000之間個位數是3或7的素數 */
printf("\n\n2~1000之間個位數是3或7的素數:\n");
for(i=2,n=0; i<1000;i++)
{
for(j=2,flag=1; j<=(int)sqrt(i); j++)
if(i%j==0)
{
flag=0;
break;
}
if(flag==1 && (i%10==3 || i%10==7))
{
n++;
if(n<=10)
printf("%d\t",i);
}
if(n>10)
break;
}

return 0;
}

⑵ C語言編程:判斷某數是否是質數

#include<stdio.h>
int main(int argc,int argv[]){
int a,flag;
scanf("%d",&a);/*輸入一個數進行判斷是否是質數*/
int isprime(int);/*這里是對將要調用的函數聲明一下*/
flag=isprime(int);
if(flag==1) printf("%d is isprime",a);
printf("%d is not isprime",a):
return 1;/*這里的語句代表調用函數成功*/
}
int isprime(int a){ /*功能函數,判斷是否是素數*/
int i;
for(i=2;i<=a/2;i++)
if(a%i==0) return 0;/*只要有一次相除為0,馬上就能判斷不是素數*/
return 1;/*否則經過循環之後,都沒有相除為0呢,就說明一定是素數了*/
}
看到這里是不是有點疑惑了呢?我到網路查了一下,質數也稱素數,你注意看就好。。不懂再追問。。
不過我想你看完之後你應該能明的了,我已經寫得好詳細了啦。。。。

⑶ c語言編程 判斷一個數是否為質數

邏輯判斷有問題。
if(a%n==0){
//說明已經有可以整除的數,已經不是質數了,所以可以利用break;直接跳出
}else{
//假設a是9,那麼9%2肯定不為0啊,那麼9就不是質數啦?
}
改成以下
for(n=2;n<a;n++){
if(a%n==0){
printf("no");
break;
}
}
if(n>=a){
//如果a是質數的話,說明沒有利用break跳出循環,那麼結束循環時n的值為a,如此可以判斷還未有數可以讓a整除的
printf("yes");
}

⑷ 用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語言如何判斷素數

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

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

⑹ c語言 判斷是否為質數

最常用的方法是循環,用要判斷的數去除以2到那個數減一,如果存在取余為0的,證明不是質數,判定可以加上布爾函數,存在為1.

⑺ c語言怎樣判斷一個數是不是質數

#include<stdio.h>
void main()
{
int i,n;
printf("請輸入n:");
scanf("%d",&n);
i=2;
while(i<n)
{
if(n%i==0)
break;
i++;
}
if(i==n)
printf("%d is prime\n",n);
else
printf("%d is no prime\n",n);

}

⑻ 如何用c語言編寫出判斷一個數是否為質數的程序

新建一個Win32 Console Application,創建一個Hello World!程序,把如下代碼粘進去運行。

#include "stdafx.h"
#include <stdio.h>
void main()
{
int a,k=0;
printf("請輸入大於1的正整數:");
scanf("%d",&a);
for(int i=2;i<a;i++)
if(a%i==0) {k=1;break;}
if(k) printf("%d不是質數!可以被%d整除!\n",a,i);
else printf("%d是質數!\n",a);
}

⑼ C語言判斷一個數是否是質數

根據質數的定義,在判斷一個數n是否是質數時,只要用1至n-1去除n,看看能否整除即可。
還有更好的辦法:先找一個數m,使m的平方大於n,再用小於等於m的質數去除n(n為被除數),如果都不能整除,則n必然是質數。如我們要判斷1993是不是質數,50*50>1993,那麼只要用1993除以<50的質數看是否能整除,若不能即為質數。100以內的質數有25個,還是比較好記的,只要記熟100以內質數,就可以快速判斷10000以內的數是不是質數。
100以內的質數有2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97,在100內共有25個質數。

只有1和它本身兩個因數的自然數,叫質數(或稱素數)。(如:由2÷1=2,2÷2=1,可知2的因數只有1和它本身2這兩個約數,所以2就是質數。與之相對立的是合數:「除了1和它本身兩個因數外,還有其它因數的數,叫合數。」如:4÷1=4,4÷2=2,4÷4=1,很顯然,4的因數除了1和它本身4這兩個因數以外,還有因數2,所以4是合數。)

⑽ C語言輸入一個整數,判斷是否是質數

#include<stdio.h>//頭文件

int main()//主函數

{

int number,i;//定義變數

printf("請隨機輸入一個數:");//提示語句

scanf("%d",&number);//鍵盤輸入需要判斷的數

for(i=2;i<=number-1;i++)//循環從2開始,到這個數的掐前一個數為止

{

if(number%i==0)//如果取余結果為0

break;

}

if(i<number)

{

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

}

else

{

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

}

return 0; //函數返回值為0

}