#1475: 哪來的OLE!?


timmymike (超小小蝦米)


不知道為什麼會多印出一個"非質數"耶!

 程式碼如下:

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


using namespace std ;


bool IsPrime( long long int num ) {
// num代表代測數

   long long int sqrtnum = (long long int)sqrt( (double)num ) ;
  // 此時要開始檢查sqrt到num是不是原num的因數

  if ( sqrtnum == 1 && num != 1 ) // 2、3都是質數
    return true ;
  else if ( num == 1 )
    return false ;
  else {
    for ( int i = sqrtnum ; i > 1 ; i -- )
      if ( num%i == 0 ) // 代表小於 sqrtnum的數有數字是num的因數
        return false ;
 
    return true ;
  } // else
} // IsPrime()


int main() {

  long long int num = 0 ;

  while ( !cin.eof() ) {

    cin >> num ;
      
    if ( IsPrime( num ) )
      cout << "質數" << endl ;
    else
      cout << "非質數"  << endl ;

  } // while
 

  return 0 ;
} // main()

 有請高手替我指教>.<

 

#9010: Re:哪來的OLE!?


a007 (a007)


不知道為什麼會多印出一個"非質數"耶!

 程式碼如下:

# include
# include
# include


using namespace std ;


bool IsPrime( long long int num ) {
// num代表代測數

   long long int sqrtnum = (long long int)sqrt( (double)num ) ;
  // 此時要開始檢查sqrt到num是不是原num的因數

  if ( sqrtnum == 1 && num != 1 ) // 2、3都是質數
    return true ;
  else if ( num == 1 )
    return false ;
  else {
    for ( int i = sqrtnum ; i > 1 ; i -- )
      if ( num%i == 0 ) // 代表小於 sqrtnum的數有數字是num的因數
        return false ;
 
    return true ;
  } // else
} // IsPrime()


int main() {

  long long int num = 0 ;

  while ( !cin.eof() ) {

    cin >> num ;
      
    if ( IsPrime( num ) )
      cout << "質數" << endl ;
    else
      cout << "非質數"  << endl ;

  } // while
 

  return 0 ;
} // main()

 有請高手替我指教>.<

 


 

 

 

int main() {

  long long int num = 0 ;

  while ( cin >> num  )  {

    if ( IsPrime( num ) ) 

      cout << "質數" << endl ;

    else

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

     }

     return 0 

  }

 

 

試試這樣

 

#9029: Re:哪來的OLE!?


fantasy_whale (幻光海鯨)


不知道為什麼會多印出一個"非質數"耶!

 程式碼如下:

# include
# include
# include


using namespace std ;


bool IsPrime( long long int num ) {
// num代表代測數

   long long int sqrtnum = (long long int)sqrt( (double)num ) ;
  // 此時要開始檢查sqrt到num是不是原num的因數

  if ( sqrtnum == 1 && num != 1 ) // 2、3都是質數
    return true ;
  else if ( num == 1 )
    return false ;
  else {
    for ( int i = sqrtnum ; i > 1 ; i -- )
      if ( num%i == 0 ) // 代表小於 sqrtnum的數有數字是num的因數
        return false ;
 
    return true ;
  } // else
} // IsPrime()


int main() {

  long long int num = 0 ;

  while ( !cin.eof() ) {

    cin >> num ;
      
    if ( IsPrime( num ) )
      cout << "質數" << endl ;
    else
      cout << "非質數"  << endl ;

  } // while
 

  return 0 ;
} // main()

 有請高手替我指教>.<

 


 

 

 

int main() {

  long long int num = 0 ;

  while ( cin >> num  )  {

    if ( IsPrime( num ) ) 

      cout << "質數" << endl ;

    else

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

     }

     return 0 

  }

 

 

試試這樣

 O_O

 



#9031: Re:哪來的OLE!?


fantasy_whale (幻光海鯨)


不知道為什麼會多印出一個"非質數"耶!

 程式碼如下:

# include
# include
# include


using namespace std ;


bool IsPrime( long long int num ) {
// num代表代測數

   long long int sqrtnum = (long long int)sqrt( (double)num ) ;
  // 此時要開始檢查sqrt到num是不是原num的因數

  if ( sqrtnum == 1 && num != 1 ) // 2、3都是質數
    return true ;
  else if ( num == 1 )
    return false ;
  else {
    for ( int i = sqrtnum ; i > 1 ; i -- )
      if ( num%i == 0 ) // 代表小於 sqrtnum的數有數字是num的因數
        return false ;
 
    return true ;
  } // else
} // IsPrime()


int main() {

  long long int num = 0 ;

  while ( !cin.eof() ) {

    cin >> num ;
      
    if ( IsPrime( num ) )
      cout << "質數" << endl ;
    else
      cout << "非質數"  << endl ;

  } // while
 

  return 0 ;
} // main()

 有請高手替我指教>.<

 


 

 

 

int main() {

  long long int num = 0 ;

  while ( cin >> num  )  {

    if ( IsPrime( num ) ) 

      cout << "質數" << endl ;

    else

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

     }

     return 0 

  }

 

 

試試這樣