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]); } } 1 首先開啟vs 2017軟體,開啟一個準備好的工程,新建一個c語言檔案,先寫入標頭檔案和main函式,裡面定義需要的用到的4個變數。2 然後先定義一個for迴圈遍歷100以內的所有數,利用條件語句進行判斷j是不是i的因子,是的話就相加,判斷完成後在判斷因子是不是和原來的數相等即可,盤點完輸出完成判... 1 首先新建一個空白的c語言檔案,引入標頭檔案,標頭檔案中包括math庫,稍後會用到,建立主函式 2 主函式上面新建一個判斷素數的函式isprime,判斷依據是小於從2到算數平方根的數即是素數。然後在主函式中遍歷2到100的數,呼叫isprime判斷滿足素數條件就輸出 3 寫完 最後開啟編譯後的除錯... 既然樓主把程式複製錯了,前面就可以不看了,當然,看了也行。先說樓主認為正確的程式,1,在沒有對m進行初始化的時候,就使用m來初始化其他變數。2,我覺得樓主對於變數使用的理解有一定問題,根據你的寫法,你應該是認為這幾句 a m 10 b m 10 10 c m 100 10 已經對abc進行了初始化,...輸出100以內所有完數,C語言。
用C語言輸出1到100內所有的素數
C語言輸出100 200的素數,幫忙看下哪個地方有問題