1樓:網友
可以改為這樣:
#include
#include
void main()
int i,j,k,sum=0,m=0;
for(i=20;i<201;i++)
j=sqrt(i);
for(k=2;k<=j;k++)
if(i%k==0)
goto lop;
printf("%d",i);
m; if(m%6==0)
printf("");
sum=sum+i;
lop:;printf("20至200中素數之和為%d",sum);
你那個輸出在if之後馬上就輸出,即當乙個數不能被2整除後它馬上輸出,此時並沒有判歷謹斷它是否能被2到sqrt(i)後面的數整除,應該把輸出素數那語句放肢芹基首租在第二個for語句之外。
2樓:網友
if(i%k==0)
break;
printf("%d ",i);
你這裡輸出得太急,如笑並果i不能被2整除就輸出了,也就是k還沒有累加到j就把i做為素數輸出了。你加乙個布林型的指示變數,如果在k從2到j的過程中,只要整除就是false,如果迴圈結束一直是true就證明是素數,然後輸出。
你看看i=9時會發生什麼就知道錯在**了。
布林型就是true或false,你可以用0或鋒公升孫者1表示能否被k整除銀鏈。
3樓:網友
/輸出20到200之間的素數及這些素數的和,每行輸出6個數。
#include
#include
void main()
int i,j,k,l,sum=0,m=0;
for(i=20;i<200;i++)
j=sqrt(i);
l=j; for(k=2;k<=j;k++)if(i%k==0)
break;
if(l==k)
printf("%d ",i);
m++;if(m%6==0)
printf(""納棗行);
sum=sum+i;
printf("20至200中素數之巖搏和為%d",sum);
主要問題在於原程式並不是所有都測試過了。所洞譁以加了一段判斷,只有迴圈到最後仍然存在時才可以確定為素數,從來輸出實現。
求c語言2019到20000之間的素數
include include int isprimer int x return flag void main 呼叫isprimer函式 for i x i y i 鍵盤輸入x和y為 2012和20000!結果是 17029是素數 17033是素數 17041是素數 17047是素數 17053是...
急求用C語言編寫素數展示的程式
分數太少啦。每個要求分還差不多。輸入的個正數,判斷其是否為素數。main int n,i,logo scanf d n if n for i i n i if n i logo break if logo printf 是素數 else if logo printf 不是素數 你還是把分給我吧,我急...
c語言中怎麼求數的尾數,c語言中怎麼求一個數的尾數
假設你輸入的是整數 那這個數的個位數就是 x 10 你說的是求位數?假設你輸入的是整數 用這個數不斷的除10 然後每除一次i就加一 直到為除到零 然後i就是這個數的位數啦 整數的話輸出n 10 小數不好判斷 include main c語言中怎樣判斷一個數是幾位 思路 因為c語言中整數除以整數等於整...