c語言程式設計 判斷數是否為質數,c語言程式設計 判斷乙個數是否為質數

時間 2021-12-25 02:44:00

1樓:匿名使用者

#include "stdafx.h"

#include

void main()

}}}這樣試試呢~~~但是以前編寫過~~很久沒用過c了 幾乎忘記的差不多了~~n的值可以小於等於a的平方根就行了~~這樣運算會更快~~

2樓:夢之旅夢之藍

include

#include

void main()

3樓:春雨_潤物

#include

#include

void main()

printf("yes");}

4樓:匿名使用者

錯誤較多,修改如下:

#include

void main()

//注意這裡

}if (n==a)//注意這裡

}//注意這裡

c語言判斷乙個數是否是質數

5樓:花開勿敗的雨季

根據質數的定義,在判斷乙個數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是合數。)

6樓:聽不清啊

#include

int main()

7樓:雍義呂子

|錯誤較多,修改如下:

#include

void

main()

{int

a,n;

scanf("%d",&a);

if(a==0||a==1)

printf("no");

else

if(a==2)

//注意這裡

8樓:符恆但霜

#include

"stdio.h"

void

main()

}//如果乙個整數是質數,那麼只有被1和它本身整除,所以只有2,如果超過2,那麼肯定不是質數

if(flag==2)

else}

9樓:考長青兆綾

判斷乙個數是否是質數在於看這個數字是否只能被1和它本身所整除的整數。但是有乙個例外,1不屬於質數。

c語言中的質數:

數學的概念中,素數就是只能被1和它本身所整除的整數。但是有乙個例外,就是1不屬於素數。所以你在輸入乙個整數並加以判斷的時候就需要考慮這種情況了。如下即可:

while(scanf("%lu",

&num)==1

&&num

!=1)

1這裡用到了while迴圈來判斷輸入的數值並加以判斷,如果輸入格式正確的話會返回乙個1並將輸入的數值存入num這個變數中,然後再判斷num的值是否為1。

在這裡有一條很好用的規則用於素數的判斷:測試的數隻需要界於2到num的平方根之間的所有數,看它們是否可以整除num。如果可以整除,說明輸入的數不是素數;反之,說明輸入的數是素數。

到這裡,就會有人說平方根怎麼求,其實這個很好解決。你完全可以像下面這樣描述判斷條件:

for(div=2;

(div

*div)

<=num;div++)else

else{//

約數相同

printf("%lu

isdivisible

by%lu.\n",

num,

div);

//將isprime設定為0,表示其不是乙個素數

isprime=0;

if(isprime

==1){

printf("%lu

是素數.\n",

num);

printf("please

enter

another

integer

foranalysis.

");printf("enterqto

quit.\n");

printf("bye.\n");

return

0;這裡有乙個關鍵就是,在for迴圈控制表示式中使用了逗號運算子,以針對每個新輸入的數將isprime初始化為1。

10樓:匿名使用者

#include

void main()

else

}上面這個演算法比較取巧

c語言中如何判斷乙個數是否是質數?

11樓:匿名使用者

判斷乙個數是否是質數在於看這個數字是否只能被1和它本身所整除的整數。但是有乙個例外,1不屬於質數。

c語言中的質數:

數學的概念中,素數就是只能被1和它本身所整除的整數。但是有乙個例外,就是1不屬於素數。所以你在輸入乙個整數並加以判斷的時候就需要考慮這種情況了。如下即可:

這裡用到了while迴圈來判斷輸入的數值並加以判斷,如果輸入格式正確的話會返回乙個1並將輸入的數值存入num這個變數中,然後再判斷num的值是否為1。

在這裡有一條很好用的規則用於素數的判斷:測試的數隻需要界於2到num的平方根之間的所有數,看它們是否可以整除num。如果可以整除,說明輸入的數不是素數;反之,說明輸入的數是素數。

到這裡,就會有人說平方根怎麼求,其實這個很好解決。你完全可以像下面這樣描述判斷條件:

for(div = 2; (div * div) <= num;div++)else else{// 約數相同

printf("%lu is divisible by %lu.\n", num, div);

// 將isprime設定為0,表示其不是乙個素數

isprime = 0;

if(isprime == 1){

printf("%lu 是素數.\n", num);

printf("please enter another integer for analysis. ");

printf("enter q to quit.\n");

printf("bye.\n");

return 0;

這裡有乙個關鍵就是,在for迴圈控制表示式中使用了逗號運算子,以針對每個新輸入的數將isprime初始化為1。

12樓:

#include

int main()

}if(b==2)

else

return 0;}

13樓:精靈只路過

#include "stdio.h"

void main()

}//如果乙個整數是質數,那麼只有被1和它本身整除,所以只有2,如果超過2,那麼肯定不是質數

if (flag==2) else}

14樓:太陽雨

樓上的太複雜了!

int main()

}if(a==0)

else

return 0;}

15樓:聽不清啊

#include

int main()

16樓:熱情的滑鐵盧

#include

#include

#include

int prime(int a)    /*定義乙個函式來判斷數a是不是質數*/

if (flag==2)

return 1;  /*如果a是質數,flag應該是2,返回值1*/

else

return 0;  /*如果a不是質數,flag比2大,返回值0*/

}/* (這部分內容是補充,prime函式可以簡化為:)int prime(int a)

return flag;}*/

int main()

如何用c語言程式設計判斷乙個數是不是素數?

17樓:問明

方法一:

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

18樓:風若遠去何人留

判斷素數的方法很多。

以數學方法為例,按照數學規則,如果在2~n-1中存在因子,則n不是素數。否則n為素數。

int is_prime(int n)//判斷n是否為素數。

在此基礎上,可以將判斷範圍優化為i <= n/2 或i <=sqrt(n)(sqrt為算數平方根函式)。

這樣可以減少判斷次數,提高效率。

19樓:匿名使用者

樓上的那複製來的?我的修改一下#includeint prime(int m)

main()

負數、0、 1都不是素數,所以輸入它們的時候顯示不是素數(素數是從2開始的)

c語言編寫乙個程式判斷乙個數是否為素數?急求

20樓:亂七八糟

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

# include

int main(void)

for迴圈的功能:

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

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

21樓:飛喵某

2、然後寫入判斷素數的邏輯,這裡先引入乙個scanf函式,接受使用者輸入的數值存入變數,對接收的變數判斷其是否為素數,判斷的依據是如果能被2到n-1中的某個數整除就是素數,否則就不是。最後把判斷的結果列印出來即可:

3、最後編譯執行除錯一下程式,按下crtl+f5編譯,在彈出的命令列中輸入17這個素數,程式判斷的結果是素數說明程式的邏輯是沒有問題的。以上就是c語言判斷素數的方法:

c語言程式設計輸入正整數n判斷它是否同時含有

include include int main if flag1 flag2 printf 正整數 d既包含偶數也包含奇數 n n2 else if flag1 printf 正整數 d只包含奇數 n n2 else printf 正整數 d只包含偶數 n n2 system pause retu...

c 中判斷數是否為奇數一共有幾種方法

在c c 中,判斷乙個整數是否為奇數就一種方法,那就是考察這個數能不能被2整除,不能整除的就是奇數。至於用什麼樣的c c 語句實現,那卻有好多種寫法,舉幾例如下 設n是已經宣告並賦值的正整數 直接判斷能否被2整除 if n 2 0 printf d is an odd number.n n 或if ...

c語言判斷每位數字是否相同,c語言陣列元素判斷是否相同以及相同的個數

我來幫樓主修改一下吧,先說明一下,我只是基於樓主的分析和處理實現來盡可能最小程度的做改動,不代表我個人贊同這種實現或者沒有更好的方法。要重新寫一段簡單的實現很容易,但樓主的求助就成了讓人幫忙完成作業了,沒意義。只要是修改while裡面的部分 for i 0 i if s m printf yes n...

c語言程式設計 判斷300 999之間有多少個素數,並輸出所有素

1 cat 300.c include stdio.h int main printf n printf row 5d d 6 1 printf n printf totol 5d d printf n return 0 2 編譯gcc o 300 300.c3 執行 300 307 311 313...

fortran90程式設計中判斷正整數是否為完數的程式

integer a,i,k,sum read a k int a 2 0.1 sum 0 do 10 i 1,k if mod a,i eq.0 sum sum i10 continue if sum.eq.a then write yes else write no endif pauseend ...