算法竞赛入门经典 例题4-2孪生素数

#include 
#include 
#include 
bool isPrime(int x){
	assert(x >= 0);
	if (x == 1) return false;
	//以下方法中 i * i 可能溢出,所以用新方法
	//for(int i = 2; i * i < x; ++i){
	//	if(x % i == 0){
	//	 return false;
	//	}
	//}
	int m = floor(sqrtf(x) + 0.5);
	for (int i = 2; i <= m; ++i){
		if (x % i == 0){
			return false;
		}
	}
	return true;
}
int main(int argc, char *argv[]){
	int x;
	scanf("%d", &x);
	for (int i = 5; i < x; ++i){
		if (isPrime(i - 2) && isPrime(i)){
			printf("%d %d\n", i - 2, i);
		}
	}
	return 0;
}

你可能感兴趣的:(竞赛,入门,acm)