最后一个没过,求调
查看原帖
最后一个没过,求调
532121
xb1234楼主2025/7/23 16:28
#include<iostream>
#include<cmath>
using namespace std;
bool isPrime(int n) {
	if (n < 2) return false;
	for (int i = 2; i <= sqrt(n); i++) {
		if (n % i == 0) return false;
	}
	return true;
}
int main() {
	int a, b;
	cin >> a >> b;
	for (int i = a; i <= b; i++) {
		int original = i;
		bool m = true;
		int j;
		if (i % 2 == 0||i%3==0) {			
			continue;
		}
		for ( j = 1; j <= 8; j++) {
			if (i < pow(10, j))
				break;
		}//确定位数
		//剥离各个数字
		if (i > 20 && j % 2 == 0) {
			continue;
		}
		int arr[9] = {};
		int k;
		for (k = 0; k < j; k++) {
			arr[k] = original % 10;
			original /= 10;
		}
		for (int l = 0; l < k/2+1; l++) {
			if (arr[l] != arr[k - l-1]) {
				m = 0;
				break;				
			}
		}
		if (!m) {
			continue;
		}
		else {
			//判断是回文数
			//再判断是否是素数
			if (isPrime(i)) {
				cout << i << endl;
			}
		}
	}
	return 0;
}
2025/7/23 16:28
加载中...