#include <iostream>
#include <cmath>
#define N 100000
using namespace std;
void primeTable(bool p[])
{
for(int k = 0; k <= N; k++){
p[k] = true;
}
bool isPrime;
p[0] = false;
p[1] = false;
for(int i = 2; i <= N; i++){
isPrime = true;
for(int j = 2; j < (i / 2 + 1) && isPrime; j++){
if( i % j == 0){
isPrime = false;
}
if(!isPrime == true){
p[i] = false;
}
}
}
}
int main()
{
int n;
bool prime[N];
primeTable(prime);
while(!(cin >> n).eof()){
if(prime[n] == true){
cout << "質數" << endl;
}
else{
cout << "非質數" << endl;
}
}
return 0;
}
在DEV C++執行可以過...但跑在這網頁就出現RE..求解
另外是當N=2147483647,連DEV C++都沒辦法跑出來 求解
#include
#include
#define N 100000
using namespace std;
void primeTable(bool p[])
{
for(int k = 0; k <= N; k++){
p[k] = true;
}
bool isPrime;
p[0] = false;
p[1] = false;
for(int i = 2; i <= N; i++){
isPrime = true;
for(int j = 2; j < (i / 2 + 1) && isPrime; j++){
if( i % j == 0){
isPrime = false;
}
if(!isPrime == true){
p[i] = false;
}
}
}
}
int main()
{
int n;
bool prime[N];
primeTable(prime);
while(!(cin >> n).eof()){
if(prime[n] == true){
cout << "質數" << endl;
}
else{
cout << "非質數" << endl;
}
}
return 0;
}
在DEV C++執行可以過...但跑在這網頁就出現RE..求解
另外是當N=2147483647,連DEV C++都沒辦法跑出來 求解
bool prime[N];
for(int k = 0; k <= N; k++){}