台灣最大程式設計社群網站
線上人數
807
 
會員總數:243161
討論主題:187981
歡迎您免費加入會員
討論區列表 >> C/C++ >> C語言印出第1~100個質數
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C語言印出第1~100個質數
價值 : 5 QP  點閱數:246 回應數:5

樓主

gargas
門外漢
0 1
27 3
發送站內信


#include <stdio.h>
#include <stdlib.h>
int prime(int);
int main()
{
int a=0,b=2;

while(a<100)
{

if(prime(b++))
a++;

}
printf("第100個質數是%d\n",b-1);


system("pause");
return 0;
}


int prime(int n)
{
int i,a;
for(i=2;i<=n-1;i++)
{
a=1;
if(n%i==0)
return 0;
a++;}
return 1;

}
請問要如何修改才能印出1~100個質數

搜尋相關Tags的文章: [ 質數 ] ,
本篇文章發表於2018-05-29 17:56
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
1.其實不用判斷到n-1,通常到 根號n 就可以了
2.第一種方法是找到一次印一次
3.第二種方法是全部記錄下來,再一次全部印出
本篇文章回覆於2018-05-29 19:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

gargas
檢舉此回應
找到一次印一次的方法,我有試過,但是不知道怎麼顯示他是第幾個質數
本篇文章回覆於2018-05-29 19:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

jjack
檢舉此回應
#include <stdio.h>
#include <stdlib.h>
int is_prime(int n);
int main(){
int i=0,n=1;
while(i<100){
if(is_prime(n))
{
i++;
printf("%dnd prime is %d\n",i,n);
}
n++;
}
return 0;
}
int is_prime(int n){
for(int i=2;i<n/2;i++)
if(n%i==0) return 0;
return 1;
}
參考看看.
本篇文章回覆於2018-05-31 18:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

gargas
檢舉此回應
謝謝兩位解答~問題解決了
本篇文章回覆於2018-06-01 09:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

jjack
檢舉此回應
問題很容易解決
重點是你有沒有學到什麼比較重要
加油
本篇文章回覆於2018-06-01 11:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.