文章
211
粉丝
1
获赞
1155
访问
47.3k
#include<bits/stdc++.h>
using namespace std;
const int MAX = 1e7;
// 埃氏筛预处理素数
bool isPrime[MAX];
void sieve() {
// 初始化:假设都是素数
for(int i = 0; i < MAX; i++)
isPrime[i] = true;
for(int i = 2; i * i < MAX; i++) {
if(isPrime[i]) {
for(int j = i * i; j < MAX; j += i)
isPrime[j] = false;
}
}
}
int main() {
sieve(); // 预处理
int cnt = 0;
for (int p = 2; p < MAX; ++p) {
if (isPrime[p]) {
int x = p;
bool hasFour = false;
while (x > 0) {
if (x % 10 == 4) {
hasFour = true;
break;
}
x /= 10;
}
if (hasFour)
cnt++;
}
}
cout << cnt;
return 0;
}
登录后发布评论
暂无评论,来抢沙发