Pagini recente » Cod sursa (job #2855059) | Cod sursa (job #2940297) | Cod sursa (job #2486825) | Cod sursa (job #555387) | Cod sursa (job #2452416)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream f ("suman.in");
ofstream g ("suman.out");
long long n;
long long k;
long long vek[26];
long long sum=0;
void rec(long long prod, long long last, long long sgn)
{
//g<<"k";
if(last==k)
return;
long long val;
// g<<sum;
//g<<last+1<<k<<" ";
for(long long i=last+1;i<=k;++i)
{
//g<<"k";
if(prod*vek[i]/__gcd(prod, vek[i]) > n)
continue;
val=prod/__gcd(prod, vek[i]) *vek[i];
sum+=sgn*(val+n-n%val)*(n/val)/2;
rec(val,i,-sgn);
//g<<sum;
}
}
int main()
{
f>>n>>k;
for(long long i=1;i<=k;++i)
f>>vek[i];
rec(1,0,1);
g<<sum;
return 0;
}