#2522: 請問TLE的原因


x000032001 (某數)


#include<iostream>
#include<math.h>
#include<string>

using namespace std;

void printArr();


int MAX = 3;
int chk = 1;
int parr[99999] = {2,3,5,7};
int n,b,boo,maxn;


 
int main(){
   maxn = 7;
   while(cin >> n){
    boo = 0;
    if( n == -1 ){
        printArr();
        boo = 1;
        }
    string s = "yes" ;
       if(n>3){ b = (int)sqrt(n); }
       else   { b = 1;       }

       for(int i = 2 ; i <= b ; i++ ){

            for(int m = 0 ; m<=MAX ; m++ ){
                if( i%parr[m] == 0  &&  i/parr[m] != 1 ){
                      chk = 0;
                      break; // 不是質數      
                  }    
                else{ 
                      chk = 1; 
                  }     
            }
            if( chk == 1 && maxn < i ){
             MAX++;
             parr[MAX] = i ;              
             maxn = i;     
            }
           
           
            if( chk == 1 && n%i == 0 ){ s = "no"; boo = 1;}
            else                  { continue;     }     
       }
       cout << s <<endl;
       chk = 1;               
/*       if( boo == 0 ){
          MAX++;
          parr[MAX] = n ;
          boo = 1;
          } */
    }
    system("pause");
    return 0;
}

void printArr(){
            for(int m = 0 ; m<=MAX ; m++ ){     
               cout << parr[m] << " ";
            }    
     }