#3719: TLE???


saitor362320 (Kira Yamato)

學校 : 國立臺灣海洋大學
編號 : 9939
來源 : [140.121.215.219]
最後登入時間 :
2014-09-15 21:28:39
d709. 判断质数(一) -- 判断质数系列 | From: [59.105.10.16] | 發表日期 : 2010-05-08 22:33

TLE耶 有更快的寫法嗎?  感謝...

#include<stdio.h>  
#include<math.h>   
int main() {  
     int n,i;  
     while( scanf("%d",&n)!=EOF ){
     if(n<=1)printf("1\n");
                 if(n==2) printf("0\n");  
             for(i=2;i<n;i++){  
                if(n%i==0){
     printf("1\n");  
                           break;
    }  
                if(i>sqrt((double)n)-1){
     printf("0\n");  
                           break;
    } 
    }  
  } 
    return 0;  
}

 
#3720: Re:TLE???


linishan (L)

學校 : 國立交通大學
編號 : 1090
來源 : [104.132.150.102]
最後登入時間 :
2019-05-10 19:57:54
d709. 判断质数(一) -- 判断质数系列 | From: [125.228.219.42] | 發表日期 : 2010-05-09 13:06

TLE耶 有更快的寫法嗎?  感謝...

#include  
#include   
int main() {  
     int n,i;  
     while( scanf("%d",&n)!=EOF ){
     if(n<=1)printf("1\n");
                 if(n==2) printf("0\n");  
             for(i=2;i
                if(n%i==0){
     printf("1\n");  
                           break;
    }  
                if(i>sqrt((double)n)-1){
     printf("0\n");  
                           break;
    } 
    }  
  } 
    return 0;  
}

建質數表

我大致上可以給你一個方向是

假設你確定 a 是質數

則 a 的倍數必不為質數

如此你只需要檢查 sqrt(MAX) 內的質數 便能確定MAX內所有的質數

 

細部有不少值得思考 加速的空間

不過只要有這個觀念的程式 就會AC 

 
#8040: Re:TLE???


chenzhao (nothing)

學校 : 福建省福州第十九中学
編號 : 32689
來源 : [143.215.55.85]
最後登入時間 :
2021-09-04 02:16:24
d709. 判断质数(一) -- 判断质数系列 | From: [110.85.52.105] | 發表日期 : 2013-08-04 10:39

TLE耶 有更快的寫法嗎?  感謝...

#include  
#include   
int main() {  
     int n,i;  
     while( scanf("%d",&n)!=EOF ){
     if(n<=1)printf("1\n");
                 if(n==2) printf("0\n");  
             for(i=2;i
                if(n%i==0){
     printf("1\n");  
                           break;
    }  
                if(i>sqrt((double)n)-1){
     printf("0\n");  
                           break;
    } 
    }  
  } 
    return 0;  
}

建質數表

我大致上可以給你一個方向是

假設你確定 a 是質數

則 a 的倍數必不為質數

如此你只需要檢查 sqrt(MAX) 內的質數 便能確定MAX內所有的質數

 

細部有不少值得思考 加速的空間

不過只要有這個觀念的程式 就會AC 


非常感谢指导!1s整刚好过...  
#8324: Re:TLE???


a450 (要学会宽容)

學校 : 福建省福州第十九中学
編號 : 33926
來源 : [118.189.34.85]
最後登入時間 :
2016-04-05 21:29:33
d709. 判断质数(一) -- 判断质数系列 | From: [110.85.53.229] | 發表日期 : 2013-10-13 10:27

TLE耶 有更快的寫法嗎?  感謝...

#include  
#include   
int main() {  
     int n,i;  
     while( scanf("%d",&n)!=EOF ){
     if(n<=1)printf("1\n");
                 if(n==2) printf("0\n");  
             for(i=2;i
                if(n%i==0){
     printf("1\n");  
                           break;
    }  
                if(i>sqrt((double)n)-1){
     printf("0\n");  
                           break;
    } 
    }  
  } 
    return 0;  
}

建質數表

我大致上可以給你一個方向是

假設你確定 a 是質數

則 a 的倍數必不為質數

如此你只需要檢查 sqrt(MAX) 內的質數 便能確定MAX內所有的質數

 

細部有不少值得思考 加速的空間

不過只要有這個觀念的程式 就會AC 

我只会这样的质数表

/**********************************************************************************/

/*  Problem: d709 "判断质数(一)" from 判断质数系列                 */

/*  Language: CPP (198 Bytes)                                                     */

/*  Result: AC(0.2s, 4.1MB) judge by this@ZeroJudge                               */

/*  Author: a450 at 2013-10-13 10:27:09                                           */

/**********************************************************************************/

 

 

#include <cstdio>

int p[1000001], n;

main(){

p[1]=1;

for(int i=2; i*i<=1000000; i++) if(!p[i]) for(int j=i*2; j<=1000000; j+=i) p[j]=1;

while(scanf("%d", &n)==1&&n) printf("%d\n", p[n]);

 
#9888: Re:TLE???


west7418 (shang)

學校 : 不指定學校
編號 : 47789
來源 : [140.134.27.160]
最後登入時間 :
2018-03-28 11:45:39
d709. 判断质数(一) -- 判断质数系列 | From: [1.175.181.161] | 發表日期 : 2015-06-05 23:16

TLE耶 有更快的寫法嗎?  感謝...

#include  
#include   
int main() {  
     int n,i;  
     while( scanf("%d",&n)!=EOF ){
     if(n<=1)printf("1\n");
                 if(n==2) printf("0\n");  
             for(i=2;i
                if(n%i==0){
     printf("1\n");  
                           break;
    }  
                if(i>sqrt((double)n)-1){
     printf("0\n");  
                           break;
    } 
    }  
  } 
    return 0;  
}

建質數表

我大致上可以給你一個方向是

假設你確定 a 是質數

則 a 的倍數必不為質數

如此你只需要檢查 sqrt(MAX) 內的質數 便能確定MAX內所有的質數

 

細部有不少值得思考 加速的空間

不過只要有這個觀念的程式 就會AC 

我只会这样的质数表

/**********************************************************************************/

/*  Problem: d709 "判断质数(一)" from 判断质数系列                 */

/*  Language: CPP (198 Bytes)                                                     */

/*  Result: AC(0.2s, 4.1MB) judge by this@ZeroJudge                               */

/*  Author: a450 at 2013-10-13 10:27:09                                           */

/**********************************************************************************/

 

 

#include

int p[1000001], n;

main(){

p[1]=1;

for(int i=2; i*i<=1000000; i++) if(!p[i]) for(int j=i*2; j<=1000000; j+=i) p[j]=1;

while(scanf("%d", &n)==1&&n) printf("%d\n", p[n]);

 

while(scanf("%d", &n)==1&&n) printf("%d\n", p[n]);

 

這一行的 1&&n看不太懂  可以解說一下嗎?? 謝謝

 
ZeroJudge Forum