Cod sursa(job #549512)

Utilizator maritimCristian Lambru maritim Data 8 martie 2011 18:21:02
Problema Light2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>

#define ll long long

using namespace std;

ll n;
ll k;
ll D[23];
ll nr = 0;

void citire(void)
{
	FILE *f = fopen("light2.in","r");
	
	fscanf(f,"%lld %d",&n,&k);
	for(long int i=1;i<=k;i++)
	{
		fscanf(f,"%d ",&D[i]);
		nr += n/D[i];
	}
	
	fclose(f);
}

void afisare(int v)
{
	for(int i=1;i<=v;i++)
		printf("%d ",D[i]);
}

void calc(int a,ll prod,long int nri)
{
	if(!(nri%2)) nr -= (nri*(n/prod)); 
	  else nr += (nri*(n/prod));
	for(int i=a+1;prod<n && i<=k;i++)
		calc(i,prod*D[i],nri+1);
}

int main()
{
	citire();
	nr = 0;
	for(int i=1;i<=k;i++)
		calc(i,D[i],1);
	printf("%d ",nr);
	return 0;
}