0
点赞
收藏
分享

微信扫一扫

H106OJ | 幸运数

Alex富贵 2022-03-25 阅读 39
蓝桥杯c++

H106 | 幸运数

题目

分析

题目已经给出思路:类似素数筛;
因此,可以借助素数筛模板;
需要改动的地方:
筛选条件:候选素数的位置序号 模 当前正在确认的素数 = 0,则标记为非幸运数;
定义一个辅助数组:候选素数数组lucky,用于获取素数和其位置信息;

代码

#include <iostream>
using namespace std;
int main() {
	int n, m;
	cin >> m >> n;
	int is_lucky[n] = {0};
	int lucky[n];
	for (int i = 2; i < n; i++) {
		if (is_lucky[i]) continue;
		int temp = 0;
		for (int j = 1; j < n; j++) {
			if (is_lucky[j] == 0) {
				lucky[++temp] = j;
			}
		}
		for (int j = i; j <= temp; j++) {
			if (j % i == 0) is_lucky[lucky[j]] = 1;
		}
	}
	int flag = 0;
	for (int i = m+1; i < n; i++) 
		if (is_lucky[i] == 0) 
			flag++;
	cout << flag;
	return 0;
} 
举报

相关推荐

H106OJ | 凶手

H106OJ带分数

H106OJ班级排名

H106OJ | 进制转换

H106OJ_第二次练习_幸运数

H106OJ | 身份证排序

H106OJ第四周练习

H106OJ第三次练习

H106OJ第二次练习

H106OJ 第五次测试 摆花

0 条评论