Cod sursa(job #1067117)

Utilizator Robert29FMI Tilica Robert Robert29 Data 26 decembrie 2013 13:28:18
Problema Dtcsu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
#include<unordered_map>
#define nr 276997
#define mod 1000007
using namespace std;

unordered_map <int, int> h;
int prim[5] = { 2, 3, 5, 7, 11 };
int main()
{
	FILE*f = fopen("dtcsu.in", "r");
	long long x;
	for (int i = 1; i <= nr; ++i)
	{
		fscanf(f, "%lld", &x);
		if (x & 1)
			h[x] = 1;
	}

	int q, sol = 0;
	fscanf(f, "%d", &q);
	for (int o = 1; o <= q; ++o)
	{
		fscanf(f, "%lld", &x);
		if (!x)
			continue;
		
		x /= x&(-x);
		if (h.find(x) != h.end())
		{
			for (int d = 0; d < 5; ++d)
			{
				while (!(x % prim[d]))
				{
					x /= prim[d];
				}
			}
			if (x == 1)
				++sol;
		}
	}
	fclose(f);

	FILE*g = fopen("dtcsu.out", "w");
	fprintf(g, "%d", sol);
	fclose(g);

	return 0;
}