English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

想請問以下這個程式,是用來判斷質數的,
#include
#include
#include
int main(void)
{
int i,num,flag=1;
printf("Input a number > ");
scanf("%d",&num);

for(i=2;i<=sqrt(num);i++)
{
if(num%i==0)
{
flag=0;
break;
}
}
if(flag==1 && num!=1)
printf("此數是質數\n");
else
printf("此數不是質數\n");

system("pause");
return 0;
}
想請問如果我輸入7的話,是值數,但是這個程式是如何判斷的呢?
另外請問,flat在這裡面到底是幹麻的?有什麼功能?
#include
#include
#include
上述這些是什麼意思?
為何有的程式是#include
有些又是其他的呢?
謝謝回答.

2006-12-14 11:37:37 · 1 個解答 · 發問者 ? 3 in 電腦與網際網路 程式設計

請問大大,如果輸入100
那就變成 for(i=2;i<=10;i ) 10是100的開平方根
那他為何會只除質數呢?
不是會變成 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 嗎?
這個程式如何判斷只用2,3,5,7來除呢?
如果我輸入100的話?

2006-12-14 12:23:17 · update #1

1 個解答

國中數學有教如何判斷質數。
例如:判斷 100 是否為質數,100 開平方根為 10,100 除以質數 2、3、5、7 (1到10以內的質數),如果可被整除,100 就不是質數。
for(i=2;i<=sqrt(num);i++)
{
if(num%i==0)
{
flag=0;
break;
}
}
用迴圈從最小質數 2 計算使用者輸入的值是否為質數。
如果使用者輸入的值可以被某個質數整除,flag (旗標值,亦即 C++ 的布林值) 等於零,等於零的意思就是假 (flase),等於一就是真 (true),並中斷迴圈。
#include
#include
#include
標頭檔,這在告訴編譯器,程式碼用的函式定義都可以在這些標頭檔裡找到。
#include
這是 C++ 的輸入輸出串流函式的標頭檔案,包含…
cout (等於 printf)
cin (等於 scanf)
…等等。

2006-12-16 08:17:54 補充:
加入檢查質數的函式到迴圈即可
int check_prime(int number){
int i,retBoolean=EOF;
for(i=2;i<=(int)sqrt(number);i ){
if((number%i)==0){
retBoolean=0;
break;
}
}
return retBoolean;
}
傳回值為 -1 就是質數
傳回值為 0 不是質數

2006-12-14 12:02:28 · answer #1 · answered by Big_John-tw 7 · 0 0

fedest.com, questions and answers