本题统计 [1,n] 中质因子全部落在给定质数列表 nums 内的正整数个数,也就是 nums-smooth 数(光滑数)的个数。数字 1 没有质因子,必须计入答案。
n 最大为 1012,不能从 1 循环到 n 再分解质因子。关键观察是:m≤5,合法数字一定可以写成
p1e1p2e2⋯pmem≤n已知所有大于 1 的整数都可以被唯一分解成质数的乘积,我们把这组质数称为该整数的质因子;如:12=2×2×3,12 的质因子为 [2,3],7=1×7,7 的质因子为 [7]。
现给定一个正整数 n 和一个质数列表 nums(数字严格递增),请统计数字 1∼n 之中,有哪些数字的质因子仅出现在列表 nums 内,返回符合条件的数字数量。
注意:数字 1 无质因子,作为符合条件的数字纳入统计。
质数定义:大于 1 的自然数,除了 1 和它自身外不能被其他自然数整除的数。
数据范围:整数 n 范围:1≤n≤1012;列表 nums 长度 m 范围:1≤m≤5。
输入为一行,包含正整数 n,质数列表长度 m,以及质数列表 nums(以数组形式给出),格式为 n,m,[p1,p2,...,pm]。
输出一个整数,表示 1∼n 中质因子仅出现在列表 nums 内的数字数量。
输入
10,2,[2,3]
输出
7
说明
输入参数:上限 n=10,质数个数 m=2,允许质因子列表 [2,3]
统计所有 ≤10 且质因子仅为 2、3 的正整数:
共 7 个,返回结果 7。
输入
15,3,[2,3,5]
输出
11
说明
输入参数:上限 n=15,质数个数 m=3,允许质因子列表 [2,3,5]
统计所有 ≤15 且质因子仅为 2、3、5 的正整数:
共 11 个,返回结果 11。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册