最近資訊要期末考
老師出了三題要我們回去搞定
分別是
1.輸入一正整數N,列出N之所有正因數
2.輸入一正整數,判斷此數是否為質數
3.輸入一正整數N,列印出由1開始至N範圍內所有質數
老師自己是有作網頁要我們去看(內有他的"不完整"的程式碼),不過麻...那個網頁"似乎"只能在"他"的電腦上才看得到...
雖然他是有給我們全班在上課時間抄過
不過第三題抄到的卻想不到該怎麼搞定他,想請問第3題的程式碼是如何
前幾天曾經問過相似的問題,回答的那位很好心的都有給解答(1.3題)。雖然第一題是對了,但是第三題卻出現無限迴圈。
下列是我自己試著修改過的第三題(老師給的)..但是出來的答案跟要求天差地遠...
#include
#include
main()
{
int n,a=1,b,count;
printf("列出由一開始至此數範圍內的所有質數\n");
printf("請輸入一數\n");
scanf("%d",&n);
printf("%d 以內的所有質數為",n);
while(a<=n)
{
b=1;
count=0;}
while(b<=a)
{
if(a%b==0)
{
count=count+1;
b=b+1;
}
if(count==2)
{
printf("%d",a);
a=a+1;
}
}
system("PAUSE");
return 0;
}
2007-06-13 13:41:54 · 2 個解答 · 發問者 烙影 1 in 電腦與網際網路 ➔ 程式設計
//Power by Visual Studio 2005
#include
#include
#include
int isprime(int number){//Check number
int i,retBoolean=1;
//1 is True, 0 is False
for(i=2;i<=(int)sqrt(number);i++){
if((number%i)==0){
retBoolean=0;//false
break;
}
}
return retBoolean;//return boolean value
}
int main(int argc, char* argv[]){
//==========START==========//
int num,i;
printf("Input MAX range: "),scanf("%d",&num);
printf(" 2- %d prime is...\n",num);
for(i=2;i<=num;i++){
if(isprime(i)){
printf(" %d",i);
}
}
printf("\n");
//==========END==========//
system("PAUSE");
return 0;
}
2007-06-13 15:23:42 · answer #1 · answered by Big_John-tw 7 · 0⤊ 0⤋
你們老師的概念是:如果一個數他只有兩個因數的話,那就當他是質數。
往這方向想想,應該可以改出來。
2007-06-13 14:27:31 · answer #2 · answered by ? 4 · 0⤊ 0⤋