Cod sursa(job #2145051)

Utilizator WebDesignbyTMGhiorghiu Ioan-Viorel WebDesignbyTM Data 27 februarie 2018 02:10:10
Problema Mins Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#define DM 1003
#define DN 1000003
#include <bitset>
#include <fstream>
using namespace std;

ifstream fi ("mins.in");
ofstream fo ("mins.out");
bitset <DN> bs;
int c, d, sum, prm[DM];

int calcul(int a, int b)
{
	int rez = 0;
	for (int i = 1; i <= prm[0] && prm[i] <= min(a, b); ++i)
	{
		if (a%prm[i] == 0)
			rez += b/prm[i];
	}
	return rez;
}

int main()
{
	fi >> c >> d;
	if (c > d)
		swap(c, d);
	prm[++prm[0]] = 2;
	for (int i = 1; ((i*i) << 1) + (i << 1) <= d; ++i)
		if (!bs[i])
		{
			prm[++prm[0]] = (i << 1) + 1;
			for (int j = ((i*i) << 1) + (i << 1); (j << 1) + 1 <= d; j+=(i << 1) + 1)
				bs[j] = 1;
		}
	for (int i = 2; i < d; ++i)
		sum += c - 1 - calcul(i, c - 1);
	sum += c - 1;
	fo << sum;
	return 0;
}