素数判定

#include<iostream>
#include<math>
using namespace std;
int main( int argc, char** argv ){
	int lim = 0;
	int i;
	bool isPrime = true;
	sscanf( argv[ 1 ], "%d", &lim );
	for( i = 2; i < ( int )( sqrt( lim ) + 1.0 ); i ++ ){
		if(( lim % i ) == 0 ){
			isPrime = false;
			break;
		}
	}
	if( isPrime ){
		printf( "%dは素数\n", lim );
	}else{
		printf( "%dは非素数\n", lim );
	}
	return 0;
}

おまけで素数列挙

#include<iostream>
#include<math>
using namespace std;
int main( int argc, char** argv ){
	int lim = 0;
	int i, j;
	bool isPrime;
	sscanf( argv[ 1 ], "%d", &lim );
	if( lim == 0 ){
		return -1;
	}
	printf( "%d ", 2 );
	for( i = 3; i < lim; i ++ ){
		isPrime = true;
		for( j = 2; j < ( int )( sqrt( i ) + 1.0 ); j ++ ){
			if(( i % j ) == 0 ){
				isPrime = false;
				break;
			}
		}
		if( isPrime ){
			printf( "%d ", i );
		}
	}
	return 0;
}