#3363: 可以幫我看看嗎?QQ


greatspy (搞)


我用devC++開發

但是卻一直回傳逾時的訊息

希望有高手可以幫我看看

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
   float a;
   double s;
   int k;
   while((scanf("%f",&a))!=EOF)
   {  
       s = sqrt(a);
       k = (int)ceil(s);
       for(int t=2;t<=k;t++)
       {
               if((int)a%t==0||(int)a%2==0)
               {
                  if((int)a == 2){
                  printf("質數\n");
                  main();              
                  }
                  else{
                  printf("非質數\n");
                  main();
                  }
               }
               else if(t==k)
               {
               printf("質數\n");
               main();
               }
       }
   }
    return EXIT_SUCCESS;
}

 

#3364: Re:可以幫我看看嗎?QQ


example (學姊)


我用devC++開發

但是卻一直回傳逾時的訊息

希望有高手可以幫我看看

#include
#include
using namespace std;

int main()
{
   float a;
   double s;
   int k;
   while((scanf("%f",&a))!=EOF)
   {  
       s = sqrt(a);
       k = (int)ceil(s);
       for(int t=2;t<=k;t++)
       {
               if((int)a%t==0||(int)a%2==0)
               {
                  if((int)a == 2){
                  printf("質數\n");
                  main();              
                  }
                  else{
                  printf("非質數\n");
                  main();
                  }
               }
               else if(t==k)
               {
               printf("質數\n");
               main();
               }
       }
   }
    return EXIT_SUCCESS;
}

 我想你在 if 裡面的 main() 應該是 break 的意思吧

 是"印出之後跳出"嗎 ?

#3367: Re:可以幫我看看嗎?QQ


greatspy (搞)


我用devC++開發

但是卻一直回傳逾時的訊息

希望有高手可以幫我看看

#include
#include
using namespace std;

int main()
{
   float a;
   double s;
   int k;
   while((scanf("%f",&a))!=EOF)
   {  
       s = sqrt(a);
       k = (int)ceil(s);
       for(int t=2;t<=k;t++)
       {
               if((int)a%t==0||(int)a%2==0)
               {
                  if((int)a == 2){
                  printf("質數\n");
                  main();              
                  }
                  else{
                  printf("非質數\n");
                  main();
                  }
               }
               else if(t==k)
               {
               printf("質數\n");
               main();
               }
       }
   }
    return EXIT_SUCCESS;
}

 我想你在 if 裡面的 main() 應該是 break 的意思吧

 是"印出之後跳出"嗎 ?

作用很像但不是break

我是讓他印出之後重新進入main()

#3372: Re:可以幫我看看嗎?QQ


linishan (L)


 作用很像但不是break

我是讓他印出之後重新進入main()



重新進入main()?

那不就是無窮的遞迴嗎?(重新執行while那些..  等到執行到main();  又再繼續call ... 一直call...)

有嚴重的邏輯瑕疵 建議重寫..

#3374: Re:可以幫我看看嗎?QQ


example (學姊)


 作用很像但不是break

我是讓他印出之後重新進入main()

 那應該是用 break; 代替呼叫 main() 哦

 不用重寫啦

#3376: Re:可以幫我看看嗎?QQ


linishan (L)


 作用很像但不是break

我是讓他印出之後重新進入main()

 那應該是用 break; 代替呼叫 main() 哦

 不用重寫啦

噢 對唷= =

沒看清楚˙˙˙

他的寫法滿特別的 0.0

 

檢查質數其實..  先判斷是否是2的倍數  改+=2

速度會是2倍快~