CSES - Shared codeLink to this code:
https://cses.fi/paste/045e5e1886f8c77f19af18/
#include<iostream>
using namespace std;
#include<vector>
long long gcd(long long a,long long b)
{
if(b==0){
return a;
}
return gcd(b,a%b);
}
int main()
{
long long n,k;
cin>>n>>k;
vector<long long> primes;
while(k--)
{
long long m;
cin>>m;
primes.push_back(m);
}
long long int ans=0;
for(int i=0;i<primes.size();i++)
{
ans=ans+(n/primes[i]);
}
for(int i=0;i<primes.size()-1;i++)
{
for(int j=i+1;j<primes.size();j++){
long long common=gcd(primes[i],primes[j]);
long long lcm=(primes[i]*primes[j])/common;
long long common_Numbers=n/lcm;
ans=ans-common_Numbers;
}
}
cout<<ans<<endl;
}