#6990: 逾時怎麼辦啊??


james35022000 (010243)

學校 : 國立彰化高級中學
編號 : 26894
來源 : [203.217.123.102]
最後登入時間 :
2014-10-21 11:07:49
a007. 判斷質數 | From: [203.217.122.189] | 發表日期 : 2012-09-08 15:58

#include <iostream>
using namespace std;

int main()
{
    int a,b;
    while(cin>>a)
    {
        int c=1; 
        for(int i=2;i<a;i++)
        {
             b=a%i;
             c=c*b; 
        } 
        if(a==1)
        cout<<"非質數"<<endl;
        else if(a==2) 
        cout<<"質數"<<endl;
        else if(c==0)
        cout<<"非質數"<<endl;        
        else
        cout<<"質數"<<endl;                       
    } 
   return 0;
}
 
 
逾時怎麼辦啊@@... 
 
#6992: Re:逾時怎麼辦啊??


passerr (20130326 0340 48)

學校 : 不指定學校
編號 : 8516
來源 : [125.224.93.117]
最後登入時間 :
2024-09-05 12:09:52
a007. 判斷質數 | From: [125.224.235.57] | 發表日期 : 2012-09-08 21:14

只能先看題目討論串了吧

 
#6993: Re:逾時怎麼辦啊??


james35022000 (010243)

學校 : 國立彰化高級中學
編號 : 26894
來源 : [203.217.123.102]
最後登入時間 :
2014-10-21 11:07:49
a007. 判斷質數 | From: [203.217.122.189] | 發表日期 : 2012-09-08 21:36

換另一種寫法....

#include <iostream>

using namespace std;

 

int main()

{

    int a;

    while(cin>>a)

    {

        if(a<2)

              {

                    cout<<"非質數" <<endl;

                    goto the_end; 

              } 

         for(int i=2;i<a;i++)

            if(a%i==0)

             {

                cout<<"非質數" <<endl;

                goto the_end;

             }            

            cout<<"質數" <<endl;

            the_end:

                    cout; 

    } 

   return 0;

}

 

還是逾時 !!


 
#6995: Re:逾時怎麼辦啊??


philip20336 (horba)

學校 : 新北市立板橋高級中學
編號 : 26852
來源 : [140.112.16.131]
最後登入時間 :
2019-06-13 11:12:51
a007. 判斷質數 | From: [118.165.98.144] | 發表日期 : 2012-09-09 14:24

換另一種寫法....

#include

using namespace std;

 

int main()

{

    int a;

    while(cin>>a)

    {

        if(a<2)

              {

                    cout<<"非質數" <

                    goto the_end; 

              } 

         for(int i=2;i

            if(a%i==0)

             {

                cout<<"非質數" <

                goto the_end;

             }            

            cout<<"質數" <

            the_end:

                    cout; 

    } 

   return 0;

}

 

還是逾時 !!

用if試試 


 
#7095: Re:逾時怎麼辦啊??


d2513850 (林勇智)

學校 : 崑山科技大學
編號 : 5102
來源 : [114.140.72.110]
最後登入時間 :
2024-10-20 17:35:39
a007. 判斷質數 | From: [120.114.123.36] | 發表日期 : 2012-10-22 09:56

換另一種寫法....

#include

using namespace std;

 

int main()

{

    int a;

    while(cin>>a)

    {

        if(a<2)

              {

                    cout<<"非質數" <

                    goto the_end; 

              } 

         for(int i=2;i

            if(a%i==0)

             {

                cout<<"非質數" <

                goto the_end;

             }            

            cout<<"質數" <

            the_end:

                    cout; 

    } 

   return 0;

}

 

還是逾時 !!


你必須先從2做到sqrt(n)

 
#7096: Re:逾時怎麼辦啊??


d2513850 (林勇智)

學校 : 崑山科技大學
編號 : 5102
來源 : [114.140.72.110]
最後登入時間 :
2024-10-20 17:35:39
a007. 判斷質數 | From: [120.114.123.36] | 發表日期 : 2012-10-22 09:59

#include
using namespace std;

int main()
{
    int a,b;
    while(cin>>a)
    {
        int c=1; 
        for(int i=2;i
        {
             b=a%i;
             c=c*b; 
        } 
        if(a==1)
        cout<<"非質數"<
        else if(a==2) 
        cout<<"質數"<
        else if(c==0)
        cout<<"非質數"<
        else
        cout<<"質數"<
    } 
   return 0;
}
 
 
逾時怎麼辦啊@@... 
若輸入值為負整數或0或1或非數值資料時,直接送出"非質數"
 
#7105: Re:逾時怎麼辦啊??


akira0331 (小迷糊)

學校 : 不指定學校
編號 : 26613
來源 : [203.70.194.240]
最後登入時間 :
2013-07-29 09:30:29
a007. 判斷質數 | From: [203.70.194.240] | 發表日期 : 2012-10-24 11:46

#include
using namespace std;

int main()
{
    int a,b;
    while(cin>>a)
    {
        int c=1; 
        for(int i=2;i
        {
             b=a%i;
             c=c*b; 
        } 
        if(a==1)
        cout<<"非質數"<
        else if(a==2) 
        cout<<"質數"<
        else if(c==0)
        cout<<"非質數"<
        else
        cout<<"質數"<
    } 
   return 0;
}
逾時怎麼辦啊@@... 

建議將for迴圈內容改寫成
for(i=2;i<=sqrt(a);i++)
{
      if(a%i==0) {c=0; break;}
}
使用sqrt(a)可以不用跑多餘的數值, 另外a%i==0就表是 a不是質數
 
ZeroJudge Forum