Cod sursa(job #728557)

Utilizator valentin.harsanValentin Harsan valentin.harsan Data 28 martie 2012 19:47:56
Problema Light2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<iostream>
#include<fstream>
using namespace std;

ifstream in("light2.in");
ofstream out("light2.out");

long long n,sol;
int k,x[23];

inline int gcd(long long a, long long b) {
	long long t;
	
	while(b) {
		t = a%b;
		a = b;
		b = t;
	}
	
	return a;
}

inline void rez(int poz, int el, int op, int pp) {
	int i,t;
	
	for(i=poz+1;i<=k;++i) {
		t = el*x[i]/gcd(el,x[i]);
		sol += n/t*op*pp;
		rez(i, t, -op, 2*pp);
	}
}

int main() {
	int i;
	
	in >> n >> k;
	
	for(i=1;i<=k;++i)
		in >> x[i];
	
	for(i=1;i<=k;++i) {
		sol+=n/x[i];
		
		rez(i, x[i], -1, 2);
	}
	
	out << n - sol << "\n";
	
	return 0;
}