1樓:匿名使用者
#include "stdio.h"
#include "math.h"
main()
/*leap置0,並且跳出迴圈,因為不必繼續測試餘下的i+1到'm+1的平方根'了*/
if(leap)
}/*測試下一個 m */
printf("\nthe total is %d\n",h);/*輸出個數 h */
system("pause");/*用系統呼叫執行pause命令,等待使用者按任一鍵退出*/}
2樓:匿名使用者
100以內質數記憶法
100以內的質數共有25個,這些質數我們經常用到,可以用下面的兩種辦法記住它們。
一、規律記憶法
首先記住2和3,而2和3兩個質數的乘積為6。100以內的質數,一般都在6的倍數前、後的位置上。如5、7、11、13、19、23、29、31、37、41、43……只有25、35、49、55、65、77、85、91、95這幾個6的倍數前後位置上的數不是質數,而這幾個數都是5或7的倍數。
由此可知:100以內6的倍數前、後位置上的兩個數,只要不是5或7的倍數,就一定是質數。根據這個特點可以記住100以內的質數。
二、分類記憶法
我們可以把100以內的質數分為五類記憶。
第一類:20以內的質數,共8個:2、3、5、7、11、13、17、19。
第二類:個位數字是3或9,十位數字相差3的質數,共6個:23、29、53、59、83、89。
第三類:個位數字是1或7,十位數字相差3的質數,共4個:31、37、61、67。
第四類:個位數字是1、3或7,十位數字相差3的質數,共5個:41、43、47、71、73。
第五類:還有2個持數是79和97。
3樓:匿名使用者
#include "stdio.h"
#include "iostream.h"
#include "cmath"
int main()
i++;
}if (i>k)
i=2;
num=num+2;
}cout<<"\n";}
4樓:匿名使用者
空間 裡有 例程
其實,隨便 搜搜 就有的
c語言 求100—200之間的全部素數,並且輸出每10個換一行
5樓:諾諾百科
第一個問題的分析:如果滿足i<=k,則說明這個數不是素數,則不用輸出,不執行下面的printf的函式,只有滿足i>=k+1(其實是滿足1=k+1),才能判斷此數為素數,則輸出。所以程式是正確的。
第二個問題的分析:兩個程式的最終結果是一樣的,都是正確的。
程式自然結束後,會有i==k+1,此時是素數,列印數字;而如果是break出迴圈,則假設不成立,為合數,不列印字元,執行下一次迴圈。
6樓:奇文
1.程式自然結束後,會有i==k+1,此時是素數,列印數字;而如果是break出迴圈,則假設不成立,為合數,不列印字元,執行下一次迴圈。
回答追問:無論被break打斷還是自然執行,下一句執行的都是if語句,如果沒有if,會輸出所有值。
2.都正確,是為了判斷是否夠10個數,夠的話執行換行
7樓:
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);
8樓:焦拱
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("\n");
當某次迴圈進入 if(i>=k+1),輸出了10個素數,使得n=10,進入 if(n%10==0)列印換行符;
下次迴圈沒有進入 if(i>=k+1),但此時n還是為10,又進入了 if(n%10==0)列印換行符,此時列印多一個換行符。
9樓:新坤在華師
#include
#include
int main()
if(n%10==0)
printf("\n");
}printf("\n");
}第一個這樣改就行了,
c語言程式設計求100到200之間的素數,每行輸出6個數
10樓:
#include
#include
int ss(int n) /*檢查n是否為素數,如果是則返回1,否則返回0*/
int main(void)
printf("\ntotal prime=%d\n",j);
return 0;
}//運**況:
101 103 107 109 113 127131 137 139 149 151 157163 167 173 179 181 191193 197 199
total prime=21
請按任意鍵繼續. . .
11樓:小茶葉的
void main()}}}
12樓:
#include
int isp(int n)
int main()
if(j%6==0)
printf("\n");}
c語言程式程式設計:輸出100到200間的全部素數,每行輸出5個素數。
13樓:刺友互
1、開啟vc2010後的介面。
2、點選檔案--->新建--->專案。點選 32位控制檯應用程式 輸入名稱
3、以上完成後,再點左擊c1後,右擊原始檔,——>新增——>新建項。
4、再選擇c++檔案,檔名稱,現在都可以寫程式了。
5、#define max 100 巨集定義max=100。
6、最後執行結果如下。
14樓:匿名使用者
#include
#include
int ss(int n) /*檢查n是否為素數,如果是則返回1,否則返回0*/
int main(void)
printf("\ntotal prime=%d\n",j);
return 0;}
15樓:匿名使用者
#include "stdio.h"
main()
if(leap)
}printf("\nthe total is %d\n",h);
system("pause");}
16樓:
#include
int main()
if (flag)
if (count == 5)
}return 0 ;}
17樓:
首先來理解素數的概念:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29…………
這些除了他本身和1不能被任何其他數字整除的數字叫做“素數”,又叫“質數”。
那麼程式設計思路就有了:
那麼我們在外面再加一圈迴圈n,讓 n 的取值範圍在 100 <= n <= 200 之間,然後巢狀:
讓 i 在 1 < i < n 的範圍內進行迴圈,然後用 n % i,如果途中發現有非 0 的值,則表示該值非質數,讓s = 1終斷迴圈。
在迴圈的最後,判斷 s :如果 s 的值為0,則輸出n。
然後(還是在迴圈內)判斷n的值:若 n % 5 結果為4,則輸出"\n"。
這就是全部的演算法,我已經寫得很詳細了 - -
18樓:
#include
#include
int main()
if(flag) }
return 0;}
c語言輸出100-200之間的素數
19樓:知識慧
邏輯錯誤,準確位置為14行,正確**如下:
#include
int main()
}if (j>=i)
}return 0;
}擴充套件資料:
質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。
質數的個數是無窮的。歐幾里得的《幾何原本》中有一個經典的證明。它使用了證明常用的方法:
反證法。具體證明如下:假設質數只有有限的n個,從小到大依次排列為p1,p2,……,pn,設n=p1×p2×……×pn,那麼,
是素數或者不是素數。
如果為素數,則
要大於p1,p2,……,pn,所以它不在那些假設的素數集合中。
如果 為合數,因為任何一個合數都可以分解為幾個素數的積;而n和n+1的最大公約數是1,所以不可能被p1,p2,……,pn整除,所以該合數分解得到的素因數肯定不在假設的素數集合中。因此無論該數是素數還是合數,都意味著在假設的有限個素數之外還存在著其他素數。所以原先的假設不成立。
也就是說,素數有無窮多個。
其他數學家給出了一些不同的證明。尤拉利用黎曼函式證明了全部素數的倒數之和是發散的,恩斯特·庫默的證明更為簡潔,哈里·弗斯滕伯格則用拓撲學加以證明。
20樓:顛倒的世界
1、首先開啟vc6.0, 新建一個vc專案,新增標頭檔案,如下圖所示。
2、然後新增main函式,如下圖所示。
3、這時定義 i, j,count三個變數,如下圖所示。
4、然後使用第一層for迴圈,使用第二層for迴圈。
5、如果j能被i整除,就跳出內層迴圈,判斷迴圈是否提前跳出,如果 j < i 說明在 2~j之間,i有可整除的數。
6、最後使用printf列印出i,用count計數,每五個數換行。
7、最後執行程式,如下圖所示就完成輸出了。
21樓:麴生軒轅晨希
#include
void
main()}
22樓:惡俗你去咯某哦
質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數。
23樓:匿名使用者
你每次判斷完一個數之後,應該要把count重新置0。
if(count==0) printf("%d\n",n);
else count=0;
24樓:yi指liu沙
我這有個c++語言的**,你自己改改就行了#include
#include
#include
using namespace std;
int main()
}if(flag==true)
}for(i=0;i cout< return 0;} sum sum i 這一句寫在了for迴圈的外面,意思就是先作for迴圈至i 101,最後執行sum sum i,輸出為101。更改,把sum sum i寫到迴圈裡面。include int main void printf d sum 直接累加 即可。include int main includ... 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是... 請家現再幫我解決補充問題 間 20137月514 44 25 目 想用if功能實現輸入字元y則顯示123否則顯示321 include char main void 何輸入char或者int結都確 vc6.0執行結 請輸入 y n y 12 ress any key to continue請輸入 y...用c語言for迴圈求1到100之和
求c語言2019到20000之間的素數
求大神用c語言編寫這道程式,求大神用c語言編寫這道程式