#geshi(cpp){{
#include <iostream>
#include <cmath>
#include <sstream>
using namespace std; int main( int argc, char** argv ){
int x; bool is_prime = true;
if(argc < 2){ cout << "Input x > "; cin >> x; }else{ istringstream is(argv[1]); is >> x; }
for( int i = 2; i < static_cast<int>(sqrt(x)) + 1; i++){ if(( x % i ) == 0 ){ is_prime = false; break; } }
if( is_prime ) cout << x << "は素数" << endl; else cout << x << "は非素数" << endl; return 0;
} }}
#geshi(cpp){{
#include <iostream>
#include <cmath>
#include <sstream>
#define LIMIT 1000 using namespace std; int main( int argc, char** argv ){
bool prime[LIMIT]; int x;
if(argc < 2){ cout << "Input x > "; cin >> x; }else{ istringstream is(argv[1]); is >> x; }
if(x >= LIMIT){ cout << "数値が大きすぎます" << endl; return -1; } // 初期化 for(int i=0; i<LIMIT; i++) prime[i] = true; // 0と1は外す prime[0] = prime[1] = false;
// 倍数をふるい落とす for(int i=2; i <= x; i++){ if(prime[i]) { for(int j=2; j*i <= x; j++) prime[i*j] = false; } }
// 残ったものを表示 for(int i=0; i <= x; i++) if(prime[i]) cout << i << endl; return 0;
} }}