题目
给定一个整数n和m个不同的质数p1,p2,…,pm。
请你求出1~n中能被p1,p2,…,pm中的至少一个数整除的整数有多少个。
输入格式
第一行包含整数n和m。
第二行包含m个质数。
输出格式
输出一个整数,表示满足条件的整数的个数。
数据范围
1≤m≤16
1≤n,pi≤10^9
输入样例:
10 2
2 3
输出样例:
7
代码
n, m = map(int, input().split())
primes = list(map(int, input().split()))
res = 0
for i in range(1, 1 << m):
t = 1 # 存储分母
cnt = 0 # 存储当前有多少集合
j = 0
while i:
if i & 1:
cnt += 1
t *= primes[j]
j += 1
i >>= 1
if cnt % 2: res += n // t
else: res -= n // t
print(res)