当前位置: 首页 > news >正文

题解:AcWing 890 能被整除的数

【题目来源】

AcWing:890. 能被整除的数 - AcWing题库

【题目描述】

给定一个整数 \(n\)\(m\) 个不同的质数 \(p_1,p_2,\dots,p_m\)

请你求出 \(1\sim n\) 中能被 \(p_1,p_2,\dots,p_m\) 中的至少一个数整除的整数有多少个。

【输入】

第一行包含整数 \(n\)\(m\)

第二行包含 \(m\) 个质数。

【输出】

输出一个整数,表示满足条件的整数的个数。

【输入样例】

10 2
2 3

【输出样例】

7

【解题思路】

image

【算法标签】

《AcWing 890 能被整除的数》 #容斥原理#

【代码详解】

#include <bits/stdc++.h>
using namespace std;typedef long long LL; // 定义 LL 为 long long 类型
const int N = 20; // 定义常量 N,表示质数的最大数量
int p[N]; // p 数组存储质数
int n, m; // n 表示范围上限,m 表示质数的数量int main()
{cin >> n >> m; // 输入范围上限 n 和质数的数量 mfor (int i = 0; i < m; i++) cin >> p[i]; // 输入质数int ans = 0; // 初始化答案为 0for (int i = 1; i < 1 << m; i++) { // 遍历所有可能的质数组合(二进制枚举)int s = 0; // s 表示当前组合中质数的个数int t = 1; // t 表示当前组合中质数的乘积for (int j = 0; j < m; j++) { // 遍历每个质数if (i >> j & 1) { // 如果当前质数被选中if ((LL)t * p[j] > n) { // 如果乘积超过 nt = -1; // 标记为无效组合break; // 跳出循环} else {t = t * p[j]; // 更新乘积s++; // 增加质数个数}}}if (t != -1) { // 如果组合有效if (s % 2) ans = ans + n / t; // 如果质数个数为奇数,加上 n/telse ans = ans - n / t; // 如果质数个数为偶数,减去 n/t}}cout << ans << endl; // 输出答案return 0; // 程序结束
}

【运行结果】

10 2
2 3
7
http://www.jsqmd.com/news/409330/

相关文章:

  • 大小端序存储
  • HyperRAG实战教程(非常详细),超图多跳推理从入门到精通,收藏这一篇就够了!
  • Tauri 中实现自更新(Auto Update)
  • 【DREAMVFIA开源】量子云平台构建:服务化量子计算资源管理
  • MCP Apps深度解读教程(非常详细),重构Web应用从入门到精通,收藏这一篇就够了!
  • 题解:AcWing 889 满足条件的01序列
  • .NET 11 预览版1:CoreCLR 在 WebAssembly 上的全面集成与性能突破
  • 题解:AcWing 888 求组合数 IV
  • 题解:AcWing 887 求组合数 III
  • Java 方法引用
  • Java基础(下)之Stream
  • Java基础(下)之方法引用
  • 题解:AcWing 886 求组合数 II
  • 题解:AcWing 885 求组合数 I
  • 功能炸裂!推荐一款低代码数据大屏可视化系统,内置丰富模版,支持拖拽构建炫酷大屏
  • 视频孪生终结者:镜像视界空间神经系统与空间控制权重构——融合统一空间坐标反演体系 × 三维实时定位引擎 × 多路径概率展开模型 × 前向围堵优化算法的跨行业空间压制与主动调度控制平台
  • 大数据领域数据产品的搜索功能优化
  • AI原生应用开发:如何利用Copilot实现代码质量与效率双提升
  • HNOI 2026 退役记
  • 从零开始:使用 Claude Code 打造字母消除游戏
  • 价值投资中的AI智能体可持续发展能力分析系统
  • AI模型部署自动化的核心:镜像+编排+监控的三位一体设计
  • 微信小程序 uniapp+vue老年人心血管健康
  • 基于径向基神经网络(RBF)预制构件需求量预测GUI软件
  • Sass/SCSS函数深度解析
  • 1亿条URL去重,怎么搞才不崩?生产级方案全解析(从入门到大厂实战)
  • 强化学习·价值学习-MC,TD和Q-learning算法
  • day95(2.24)——leetcode面试经典150
  • 强化学习·导论
  • 一些喜欢的 ACG 曲