2 条题解

  • 3
    @ 2026-6-4 16:23:31

    这题所输出的不是每个10 ~ 1000 之间的素数回文数,而是所有素数回文数的总个数

    • 1
      @ 2026-8-13 16:15:05
      #include <bits/stdc++.h>
      using namespace std;
      
      vector<int> split(int x) {
      	vector<int> ans;
      	while (x != 0) {
      		ans.push_back(x % 10);
      		x /= 10;
      	}
      	return ans;
      }
      
      bool isprime(int x) {
      	for (int f = 2; f * f <= x; f++) {
      		if (x % f == 0)
      			return false;
      	}
      
      	return true;
      }
      
      bool check(int x) {
      	vector<int> tmp = split(x);
      
      	for (int i = 0; i < tmp.size(); i++) {
      		if (tmp[i] != tmp[tmp.size() - 1 - i]) {
      			return false;
      		}
      	}
      
      	return isprime(x);
      }
      
      int main() {
      	int n;
      	cin >> n;
      
      	int ans = 0;
      
      	for (int i = 11; i <= n; i++) {
      		if (check(i))
      			ans++;
      	}
      
      	cout << ans;
      
      	return 0;
      }
      
      
      
      • 1

      信息

      ID
      30135
      时间
      1000ms
      内存
      256MiB
      难度
      9
      标签
      递交数
      115
      已通过
      13
      上传者