文章

211

粉丝

1

获赞

1155

访问

47.3k

头像
是(四)素数 题解:
P1740 天津大学机试题
发布于2026年2月5日 20:30
阅读数 220

#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;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发