c語言 輸出100以內的素數 break的用法為什麼會有這

時間 2021-10-17 04:51:58

1樓:安然而止

if(i>=n)的意思是判斷被除數是否小於除數,如果小於當然是不用再進行下去了。這個式子寫成if(i>=n/2)更好,可以少算幾步。

2樓:匿名使用者

每次從if(n%i==0) break;迴圈裡逃出來迴圈都能有2中結果,一、被i整除了,直接被break跳出i迴圈,這時程式還會往下跑,就有必要遮擋下對n的列印(我們只要列印素數),i這時肯定小於n,利用if(i>=n)就能過濾掉。二、當n為素數時,這時的i一直迴圈到了n結束,這時的i肯定等於n,這樣就要通過 i>=n 來列印。如果把 if(i>=n) 去掉,顯然會把所有的n都列印一遍

其中》=可以用==代替,這是因為i迴圈的頂值被限在了n,能從i迴圈出來的i 不是小於n就只能等於n

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

3樓:

有三種方法:

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個素數,基本思想是構造一個素數表,利用函式判斷每個數是否能被其之前的素數整除,如果不能,則在素數表內加上該元素,不斷迴圈(while迴圈結束條件是cnt即陣列個數》100)。

4樓:胡穰將又菡

遍歷所有值,判斷是否為素數,如是,則輸出。

一、演算法設計:

1、遍歷1到100之間所有數,由於1的特殊性,不是素數也不是合數,所以可以從2開始遍歷;

2、對於每一個數,判斷是否為素數;

3、如果是素數,則輸出,否則繼續下一個。

二、參考**:

#include

#include

int isprime(int n)//判斷素數函式。

int main()

三、執行截圖:

5樓:1024程式設計師

c語言經典例子之求100之內的素數

6樓:匿名使用者

#include

int isprime(int num)

void main()

7樓:****

#include "stdio.h"

main()

if(prime==1)/*從2開始*/

printf("%d\n",j);

}printf("\n");}

8樓:匿名使用者

#include

#include

using namespace std;

int judge(int a)

int i;

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

return 1;

int main(int argc, char* ar**)cout<<"2 3 ";

for(int i=4;i<=100;i++)if(judge(i))cout

9樓:匿名使用者

#include

using namespace std;

void main()

else

}cout<

10樓:路還是在腳下

#include

#include "maths.h"

void main ()

if(n%10==0) printf"\n");}

11樓:可愛的

num/2就已經表示你是錯的

c語言求100以內的素數

12樓:1024程式設計師

c語言經典例子之求100之內的素數

13樓:bp哥

這個問題是c語言中比較常見的一種題目,做法有很多中,我這裡提供一種最基礎的演算法,**如下:

//c語言:求100以內素數。

#include

voidmain(){

inti,j;

for(i=2;i<=100;i++){

intt=1;

for(j=2;j

14樓:廖慨督斯年

第二個for迴圈不能用t控制,因為t是flag再控制迴圈無法執行下去#include

void

main()}

15樓:原冷虢思源

#include#include

//system()函式包含在這個標頭檔案中void

main()

//這裡丟了大括號,

if(i==j)

//這裡有錯,判斷應該是==

而不是=

,要細心

else

continue; }}

16樓:桖飛

1解:#include

#include

intpr(int

n)int

main(void)

2解:#include

intisprime(int

a)void

main()

printf("100以內所有素數的和為:\n%d\n",sum);

}int

isprime(int

num)

17樓:萊靈慶司

#include

"stdio.h"

void

main()

if(k==i)printf("%d\n",i);/*當k=i時表明i不存在除1和本身以外因子,因而它是素數,打出來*/}}

18樓:

#include

void main()

19樓:石水

#include

int main()

// 假定所有的數都是,則有100個素數 ,賦值// 如果數不是素數,那麼將它置0排除!!!!

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

}printf("100以內的素數有:");

printf("\n");

for (i = 2; i <= 100; i++) //1不是素數,從第二個數開始

system("pause");

return 0;

}找來的,這個程式不錯

20樓:匿名使用者

#include

#include

int main()

if(i==m)

printf("%d\t",m);

}printf("\n");

return 0;}

21樓:

#include

int main()

a[1]=0;

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

}for(i=1;i<=100;i++)

return 0;}

22樓:隋賢相自明

#include

#include

main()

for(i=1,n=0;i<=100;i++)if(n%5==0)

printf("\n");

}printf("\n%d",sum);}}

23樓:老語開悅遠

main()

printf("\n%d",h);}

24樓:希望村村民

#include

int prime(int n)

int main()

25樓:吧啦吧啦啊是

#include<stdio.h>

int main()

if(j>=i)

printf("%d\n",i);}}

26樓:請叫我曹二爺

package main

import "fmt"

func main()

}if flag==true }}

c語言求100以內素數的問題

27樓:搜虎哈哈

c語言求100以內的素數程式設計的思路和方法如下:

1.首先需要定義兩個整型的遊標變數,用於後續的迴圈操作。這裡定義兩個變數為i,j。

2.接著適用for迴圈來分別計算100以內的數。其中游標適用i變數。(因為第一個素數是3,所以迴圈變數遊標從數字3開始)

3.接著在第一個for迴圈的開頭新增布林變數tag,這個用於後續判斷一個數是否為素數。當為素數時,將tag置為false。

4.然後使用第二個for迴圈,在這個迴圈中,使用變數j作為迴圈遊標,通過嘗試2到比需要比較的數之前的所有數是否為i的因子。

5.在第二哥迴圈中,當檢測到i不為素數時,將tag置為false。

6.然後判斷tag是否為true,如果是則說明該數為素數,此時輸出該數。

7.編寫**完成後,執行程式即可成功輸出100以內的所有素數。

28樓:幸運的雨祭

#include

int main()

int i=0;

int count=0;

for(i=0;i<=100;i++)

int j=0;

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

if(i%j==0)

break;

if(i==j)

count++;

printf("%d ",i);

printf("\ncount=%d\n",count);

return 0;

解題思路:

素數,就是除了1和他本身,不能被其他數整除的數字。答案就是用100到200之間的每個數字,除以2到其本身前面的那一個數字,如果此過程**現整除的現象,則該數不是素數。如果沒有整除的現象,則該數為素數輸出。

29樓:跪著作揖

#include

#include "math.h"

main( )

{int m,i,,k,h=0,leap=1;

printf("\n");

for(m=0;m<=100;m++)

{k=sqrt(m+1);

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

if(m%i==0)

leap=0;break;

if(leap)

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

h++;

if(h%10==0)

printf("\n");

擴充套件資料

其他方法得到100以內的素數:

#include

int main( )

int i = 0;

int j = 0;

int t = 1;

for(i = 2;i <= 100;i++)for(j = 2;j <= i / 2;j++)if(i%j == 0)

t= 0;

break;

if(t == 1)

printf("%d\n",i);

t = 1;

return 0;

30樓:西子不淼

程式分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。

程式**:

#include

#include "math.h"

main()

if(leap)}}

資料拓展:質數又稱素數。一個大於1的自然數,除了1和它自身外,不能整除其他自然數的數叫做質數;否則稱為合數。

31樓:1024程式設計師

c語言經典例子之求100之內的素數

32樓:a羅網天下

錯誤的地方:第二個for迴圈不能用t控制,因為t是flag再控制迴圈無法執行下去

例子如下:

程式執行結果如下圖所示:

33樓:匿名使用者

這個程式是死迴圈,還是列印出來的?都是偶數,為什麼i%t能除斷,就要把t=0,如果能除斷,只能說明i不是素數

34樓:匿名使用者

第二個for迴圈不能用t控制,因為t是flag再控制迴圈無法執行下去#include

void main()}

35樓:匿名使用者

你的寫法存在多處問題,首先你對流程控制不清楚,其次是演算法出現問題#include

void main()

//這裡出現死迴圈,應該用break函式及時跳出迴圈if(t==1)printf("%d",i);當i等於一時t為素數 }}

執行看看

36樓:欒翠綠

思路不對,素數是能被1和本身整除的,你的程式排除了1但沒排除被本身整除,而且寫法也多處錯誤!!

下面程式可以直接執行:

#include

#include

main()

for(j=2;j<101;j++) }if(a[j]!=0)

printf("%d\n",a[j]); } }

輸出100以內所有完數,C語言。

1 首先開啟vs 2017軟體,開啟一個準備好的工程,新建一個c語言檔案,先寫入標頭檔案和main函式,裡面定義需要的用到的4個變數。2 然後先定義一個for迴圈遍歷100以內的所有數,利用條件語句進行判斷j是不是i的因子,是的話就相加,判斷完成後在判斷因子是不是和原來的數相等即可,盤點完輸出完成判...

用C語言輸出1到100內所有的素數

1 首先新建一個空白的c語言檔案,引入標頭檔案,標頭檔案中包括math庫,稍後會用到,建立主函式 2 主函式上面新建一個判斷素數的函式isprime,判斷依據是小於從2到算數平方根的數即是素數。然後在主函式中遍歷2到100的數,呼叫isprime判斷滿足素數條件就輸出 3 寫完 最後開啟編譯後的除錯...

C語言輸出100 200的素數,幫忙看下哪個地方有問題

既然樓主把程式複製錯了,前面就可以不看了,當然,看了也行。先說樓主認為正確的程式,1,在沒有對m進行初始化的時候,就使用m來初始化其他變數。2,我覺得樓主對於變數使用的理解有一定問題,根據你的寫法,你應該是認為這幾句 a m 10 b m 10 10 c m 100 10 已經對abc進行了初始化,...