不知道為什麼會多印出一個"非質數"耶!
程式碼如下:
# 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()
有請高手替我指教>.<
不知道為什麼會多印出一個"非質數"耶!
程式碼如下:
# 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
}
試試這樣
不知道為什麼會多印出一個"非質數"耶!
程式碼如下:
# 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
不知道為什麼會多印出一個"非質數"耶!
程式碼如下:
# 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
}
試試這樣