1樓:風若遠去何人留
對100到200之間的數,逐一判斷是否為素數,如果是則輸出即可。
判斷素數方法很多,以數學方法判斷為例,**如下:
#include
int is_prime(int n)//判斷n是否為素數。
int main()
2樓:帳號已登出
錯誤原因:迴圈結束之後,沒有把s重新置為1,所以在判斷完第2個素數之後第乙個非素數後就不再輸出了。
例子如下:?
直接編譯,程式輸出結果如下圖所示:
3樓:匿名使用者
你在每次判斷完這個數是否素數後沒有把s重新置為1,所以在判段2完第乙個非素數後就不再輸出了。
c語言輸出100-200之間的素數
4樓:知識慧
邏輯錯誤,準確位置為14行,正確**如下:
#include
int main()
}if (j>=i)
}return 0;
5樓:顛倒的世界
首先開啟, 新建乙個vc專案,新增標頭檔案,如下圖所示。
然後新增main函式,如下圖所示。
這時定義 i, j,count三個變數,如下圖所示。
然後使用第一層for迴圈,使用第二層for迴圈。
如果j能被i整除,就跳出內層迴圈,判斷迴圈是否提前跳出,如果 j < i 說明在 2~j之間,i有可整除的數。
最後使用printf列印出i,用count計數,每五個數換行。
最後執行程式,如下圖所示就完成輸出了。
6樓:惡俗你去咯某哦
質數又稱素數。乙個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數。
7樓:匿名使用者
你每次判斷完乙個數之後,應該要把count重新置0。
if(count==0) printf("%d",n);
else count=0;
8樓:yi指liu沙
我這有個c++語言的**,你自己改改就行了#include
#include
#include
using namespace std;
int main()
}if(flag==true)
}for(i=0;icout 9樓:擁抱 應該是對素數的定義沒有理解吧。 素數,是定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。 簡而言之,素數就是只能被1和它自己相乘得到的數。所以,除了1和它自己之外,它對其它數取餘數,結果都不是0。 同時,無論什麼數,除了它自己之外,最大的因數肯定是它的一半,所以只需要查詢到它的一半就可以了,不必從1查詢到它自己。而且,這裡是找素數,如果它的因數包括它自己的一半與數字2的話,那它也不會是素數了,所以查詢的界限定為比如 i/2 是不會有遺漏的。 至於你的原來的**裡為什麼是它自己開平方,我數學記得不多了,不是太清楚。 然後,就是根據定義去判斷乙個數是不是素數,那麼,就必須讓它與從2到它的一半的所有的數的餘數都不為0,反應到**裡就是不僅僅要 「i % n !=0」,而且還要全部能除的數都除一遍,也就是「 n ==k」,這個時候,才能確定這個數是素數了。 #include #include int main()} printf("" return 0; }輸出截圖: 還有一張是把 i 的初始值改為 3 的輸出截圖,可以說是很規整了! 如有幫助,煩請點採納,謝謝! c語言 求100—200之間的全部素數,並且輸出每10個換一行 10樓:諾諾百科 第乙個問題的分析:如果滿足i<=k,則說明這個數不是素數,則不用輸出,不執行下面的printf的函式,只有滿足i>=k+1(其實是滿足1=k+1),才能判斷此數為素數,則輸出。所以程式是正確的。 第二個問題的分析:兩個程式的最終結果是一樣的,都是正確的。 程式自然結束後,會有i==k+1,此時是素數,列印數字;而如果是break出迴圈,則假設不成立,為合數,不列印字元,執行下一次迴圈。 11樓:奇文 1.程式自然結束後,會有i==k+1,此時是素數,列印數字;而如果是break出迴圈,則假設不成立,為合數,不列印字元,執行下一次迴圈。 2.都正確,是為了判斷是否夠10個數,夠的話執行換行。 12樓:網友 1. 先說:for(i=2;i<=k;i++)當迴圈正常結束時,也就是說從2到k,逐個都驗證了,沒強行跳出,說明沒打到因數。 此時,i=k+1,所以才有判斷if(i>=k+1)。 2.第2種對,因為for(i=2;i<=k;i++)當迴圈正常結束時, if(i>=k+1)時才應有輸出,也才涉及到是否達到10的倍數個,第1種當前素數後面緊跟的數不是素數時n的值不變,也會輸出換行,會多輸出換行的,雖然也是每行10個素數,但會有空白行,100-200之間素數恰好隔2個,看不出換行問題,擴大範圍後就能看得出了。 有個小問題,建議改掉: k=sqrt(m);會警告,問題在於sqrt函式返回值型別要求是double型,k是整型,建議改為 k=(int)sqrt(m); 13樓:焦拱 1. 注意 if(i>=k+1) 不在 for(i=2;i<=k;i++)迴圈中,for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) 當 for(i=2;i<=k;i++)沒有被 break 打斷退出,那麼 i 在退出迴圈的值為 k+1 此時 if(i>=k+1) 為真,其實 if(i>=k+1) 就是為了判斷 m 是否是素數。 2 第二種寫法比較對,我們先看第一種。 if(i>=k+1) if(n%10==0) printf("" 當某次迴圈進入 if(i>=k+1),輸出了10個素數,使得n=10,進入 if(n%10==0)列印換行符; 下次迴圈沒有進入 if(i>=k+1),但此時n還是為10,又進入了 if(n%10==0)列印換行符,此時列印多乙個換行符。 14樓:新坤在華師 #include #include int main() if(n%10==0) printf("" }printf("" }第乙個這樣改就行了, 如何用c語言求300到500之間的素數? c語言求100以內素數的問題 c語言程式設計題:求100到300之間的所有素數? 15樓: 摘要。#includeint main()}if (k ==0)}printf(""return 0;} 諮詢記錄 · 於2022-12-28 c語言程式設計題:求100到300之間的所有素數? #includeint main()}if (k ==0)}printf(""return 0;} 加個條件是啥。 幫幫忙,謝謝謝謝。 謝謝。#include int main()}printf(""return 0;} 哥們,哥們。 快。這個嗎。 對對。這個。ok謝謝。 沒事,沒事。 去大的全國連鎖超市看看智利的紅酒吧,你可以選到很不錯的酒,智利這個國家的卡曼尼和梅洛釀造的紅酒都很不錯的,這個定位不用醒酒器,在杯中晃2 3分鐘就可以了。至於橫放和豎放,普遍用木塞的就橫放,用螺旋蓋的都豎放。要醒酒的葡萄酒一般是久釀的酒,一些舊世界的酒需要20 40分鐘的醒酒時間,要買 的酒建議你到... 如果不用階承函式 include void main printf ld n sum 輸出結果 如果用階承函式 include int jc int n void main int jc int n 階乘函式 思路 先定義一個函式用來計算一個數的階乘,在從1到n迴圈依次就其累加和,最後輸出累加和即可... 1 像1 2這樣算出來的肯定是小數,不能是int型別,所以 sum z這個應該為float或double型別。2 for 迴圈如果不加 只能起作用到下面第乙個分號處,所以for下面要加上大括號.3 j根本沒有定義,從那裡來的 include int main printf 答案 lf n sum r...求價位在100 200之間的紅酒
用c語言求1到n的階層的累加和,用C語言求1到N的階層 的累加和
用c語言求1 1 2