#7768: 輸出短少


max8783890 (HelloWorld)

學校 : 國立臺北科技大學
編號 : 32398
來源 : [219.91.10.219]
最後登入時間 :
2021-09-27 23:33:59
a121. 質數又來囉 | From: [1.172.96.25] | 發表日期 : 2013-05-20 22:01

 求大大解題~~
WA (line:2)
輸出短少
您共輸出 1 行。 
 -----------------以下為程式碼------------------------
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    long int a,b,c,i;
    int j,k=0;
    scanf("%ld%ld",&a,&b);
    for(i=a;i<=b;i++)
    {   
        c = 0;
        for(j=2;j<=sqrt(i);j++)
        {
             if(i%j==0)
                 c = c + 1;
        }
        if(c==0||i==2)
        {
            k= k + 1 ;
        }
    }

    printf("%d",k);
    return 0;
}

 
#7774: Re:輸出短少


akira0331 (小迷糊)

學校 : 不指定學校
編號 : 26613
來源 : [203.70.194.240]
最後登入時間 :
2013-07-29 09:30:29
a121. 質數又來囉 | From: [203.70.194.240] | 發表日期 : 2013-05-21 09:53

 求大大解題~~
WA (line:2)
輸出短少
您共輸出 1 行。 
 -----------------以下為程式碼------------------------
#include
#include
#include
int main()
{
    long int a,b,c,i;
    int j,k=0;
    scanf("%ld%ld",&a,&b);
    for(i=a;i<=b;i++)
    {   
        c = 0;
        for(j=2;j<=sqrt(i);j++)
        {
             if(i%j==0)
                 c = c + 1;
        }
        if(c==0||i==2)
        {
            k= k + 1 ;
        }
    }

    printf("%d",k);
    return 0;
}


測資有多組輸入,要加while做重覆讀取輸入
 
#7775: Re:輸出短少


max8783890 (HelloWorld)

學校 : 國立臺北科技大學
編號 : 32398
來源 : [219.91.10.219]
最後登入時間 :
2021-09-27 23:33:59
a121. 質數又來囉 | From: [118.171.45.237] | 發表日期 : 2013-05-21 19:47

 解決了 但是變成TLE 3s
 
 --------------------------------------------
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    long int a,b,c,i;
    int j,k=0;
    while(scanf("%ld%ld",&a,&b))
    {
       for(i=a;i<=b;i++)
       {   
           c = 0;
           for(j=2;j<=sqrt(i);j++)
           {
                 if(i%j==0)
                 c = c + 1;
           }
           if(i == 1);
           else if(c==0||i==2)
           {
                 k= k + 1 ;
           }
       }

       printf("%d\n",k);
       k = 0;
    }
       return 0;
}

 
#7780: Re:輸出短少


akira0331 (小迷糊)

學校 : 不指定學校
編號 : 26613
來源 : [203.70.194.240]
最後登入時間 :
2013-07-29 09:30:29
a121. 質數又來囉 | From: [203.70.194.240] | 發表日期 : 2013-05-22 11:27

 解決了 但是變成TLE 3s
 
 --------------------------------------------
#include
#include
#include
int main()
{
    long int a,b,c,i;
    int j,k=0;
    while(scanf("%ld%ld",&a,&b))
    {
       for(i=a;i<=b;i++)
       {   
           c = 0;
           for(j=2;j<=sqrt(i);j++)
           {
                 if(i%j==0)
                 c = c + 1;
           }
           if(i == 1);
           else if(c==0||i==2)
           {
                 k= k + 1 ;
           }
       }

       printf("%d\n",k);
       k = 0;
    }
       return 0;
}


建議修改 if(i%j==0) { c = c + 1; beak; }

因為確定 i 不是質數後,就不需要再跑廻圈

 
ZeroJudge Forum