c語言輸出m,n區間素數的問題,C語言輸出 m,n 區間素數的問題

時間 2022-02-03 14:30:17

1樓:濮方雅

1、其後面緊跟的第一個語句塊,對本案例而言,是

if(a%i==0)

2、這句話意思是,如果標誌位flag為真(c語言定義一切非零的數即為真),那麼跳過下面的語句直接繼續迴圈。你可以改成 if(flag == 1) continue; 或者 if(flag != 0 ) continue;是一樣的效果。

2樓:匿名使用者

(1)不寫大括號自動找第一個分號,這裡是

if(a%i==0)

結束(2)if(flag)就是如果flag!=0的時候if語句成立,你可以試驗下,同時以後可能會碰到if(!flag)意思就是如果flag==0語句成立。

這個if不是跟上面的if對應的,所以不能用else,上面的if是在for迴圈裡的if判斷,只是沒加括號而已,語法沒錯

3樓:匿名使用者

for(i=2;i

if(a%i==0)

for與離他最近的一句在一起。

flag為1就繼續外層迴圈,不輸出

4樓:灬心羽

(1) 迴圈到i =a-1結束

這個for語句執行判斷那句, 就是

if(a%i==0)

因為for(i=2;i

(2)flag就是用來表示a是不是素數的.如果 是素數, a%i 就始終不為0, 那樣flag就不會被賦值成1.所以

flag=0,那麼if(flag)判斷為假, 不執行continue, 就能列印出a這個數字.

如果不是素數i迴圈到某個數值的時候 flag就會被賦值為1, if(flag)判斷為真, continue執行,直接下一輪迴圈,不會執行到printf.

然後新的一輪迴圈開始,flag再次賦值為0. 用來判讀下一個數是否為素數

求高手用c語言程式設計,輸出[m,n]間的所有素數,並且每5個換行,如果區間內不存在素數,輸出0。

5樓:匿名使用者

程式源**:

#include

#include

void main()

int i,k,m,n;

int count=0;

printf("請輸入求素數的上區間m的值:");

scanf("%d",&m);

printf("請輸入求素數的下區間n的值:");

scanf("%d",&n);

for(i=m;i<=n;i++)

if(i==1)

continue;

int flag=1;

for(k=2;kif(i%k==0)

flag=0;

break;

if(flag==1)

printf("%-4d",i);

count++;

if(count%5==0)

printf("\n");

if(count==0)

printf("該區間存在的素數為:0\n");

執行結果:

6樓:匿名使用者

學過數論的人應該知道,m和n的大小要有限制,因為一個很大的數判斷它是否為素數從計算上是不可能

c語言程式設計輸出區間 [m,n]內的素數,區間範圍由使用者輸入,並統計所輸出的素數總數.

7樓:聽不清啊

#include

#include

#include

int isprime(int a)

{int i;

if(a<2)return 0;

for(i=2;i<=sqrt(a);i++)if(a%i==0)return 0;

printf("%d ",a);

return 1;

int main()

int a,b=0,m,n;

printf("輸入區間 [m,n]範圍\n");

scanf("%d,%d",&m,&n);

for(a=m;a<=n;a++)

if(a==2)

{ printf("%d ",a);

b++;

else

{ b+=isprime(a) ;

printf("\n素數總數%d\n",b);

return 0;

c語言輸入兩個正整數m和n,求出[m,n]區間的所有素數

8樓:匿名使用者

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

if(j==i)

這段**,你不感覺無論是哪一個數,都會被記錄下來,最後輸出嗎?

後面改成if(j!=i)//保證不是因為除以自身而跳出上面尋個迴圈的

9樓:

最後的輸出迴圈有點問題

for (int i = 0; i < x; i++)printf("%d", a[i]);

因為你上邊已經x++,你如果判斷條件裡寫成 for (int i = 0; i <= x; i ++)

程式是要崩的。

10樓:

除了1和自身之外沒有其它正整數因子的正整數稱為素數,也就是不用試1和自身

for(j=2; j<=i; j++)改為 for(j=2; j

如果數很大這樣還是比較低效的,最多試到i的平方根即可

11樓:匿名使用者

for(j=2;j<=i;j++) 改成 for(j=2;j

不然for(j=2;j<=i;j++)結束j = i+1;永遠滿足不了後面的if(j == i)也就是無論你怎麼輸入,都不會資料出來!

12樓:我艹恰好七個字

把for(i=0;i<=x;i++)改為for(i=0;i

c語言 輸入兩個正整數m和n,求出[m,n]區間的所有素數

13樓:匿名使用者

下面的程式已經給你修改正確了:

#include

void main ( )

for(j=2;j

if(j==i) printf("%d ",i); //printf應該放到迴圈外,並且只有當j==i的時候i才是素數

}printf("\n");}

14樓:匿名使用者

素數,這一般是必考的。。。。。。。。。。。

求助一道大一c語言題 題目內容: 要求統計給定整數m和n區間內素數的個數,並對所有素數求和。

15樓:匿名使用者

你的素數判斷有問題

你的m值一旦變為0就不會再變回1了,我的建議是你最好將素數判斷作為一版

個函式int prime(int n)

return flag;

}這個函式的權flag相當於你的m,你可以看到flag在每次判斷的時候都是需要賦值為1的

c語言 輸出1到100之間的全部素數

有三種方法 1 輸出1 100以內的素數 2 同樣,也是輸出1 100以內的素數,這個構造一個陣列,將其所有元素初始化為1,表示素數,這時取x從2開始,到100以內做迴圈。若x為素數,即prime x 0,使得每個i x位置元素置0 prime i x 0 表示為非素數,迴圈結束前x 1。3 該方法...

將100到200之間的素數輸出c語言程式

半清醒丶不言語 如下 include int main int i 0 for i 100 i 200 i int j 0 for j 2 j i 1 j if i j 0 break if j i printf d i return 0 結果如下 拓展資料 素數,除了1 和它本身不能被其他數整除的...

C語言輸出格式問題啊,C語言輸出格式問題啊

1234567,4553207,12d687,1234567 u 無符號整型輸出十進位制數 u 轉換成八進位制數輸出 x 轉換成十六進位制數輸出 d 按整型輸出 最後有一個下一行的標誌 其他的都是固定的格式咯 簡單那 加油 多看書 挽ag181818v繪 在visual studio 6.0中輸出 ...