acwing 890. 能被整除的数
#include<bits/stdc++.h> #define ll long long using namespace std; int m; int n,p[20]; int sum,ans; int main() { scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) scanf("%d",&p[i]); for(int i=1;i<1<<m;i++) { int cut=0; ll k=1; for(int j=0;j<m;j++) { if((i>>j) &1) { k*=p[j+1]; if(k>n) { k=0; break; } cut++; } } if(k) if(cut%2)sum+=n/k; else sum-=n/k; } cout<<sum; return 0; }
给定一个整数n和m个不同的质数p1,p2,…,pm
。
请你求出1
~n中能被p1,p2,…,pm中的至少一个数整除的整数有多少个。