#7768: 輸出短少


max8783890 (HelloWorld)


 求大大解題~~
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 (小迷糊)


 求大大解題~~
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)


 解決了 但是變成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 (小迷糊)


 解決了 但是變成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 不是質數後,就不需要再跑廻圈