Cod sursa(job #1067488)

Utilizator tudgal1001Profir Tudor tudgal1001 Data 26 decembrie 2013 21:43:56
Problema Dtcsu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<cstdio>
#include<cstring>
#define hash_max 100003
#define M 276997
using namespace std;

char hsh[hash_max];

int man_check (long long x)
{
    while (x%2==0)
        x/=2;
    while (x%3==0)
        x/=3;
    while (x%5==0)
        x/=5;
    while (x%7==0)
        x/=7;
    while (x%11==0)
        x/=11;
    return (x==1);
}

long long numar (char* sir)
{
    int n=strlen(sir),i;
    long long nr=0;
    for (i=0; i<n; i++)
        nr=nr*10+(sir[i]-'0');
    return nr;
}

int main ()
{
    char sir[21];
    int i,n,cont=0;
    long long nr;
    freopen("dtcsu.in","r",stdin);
    freopen("dtcsu.out","w",stdout);
    for (i=1; i<=M; i++)
    {
        scanf("%s",sir);
        nr=numar(sir);
        hsh[nr%hash_max]=1;
    }
    scanf("%d",&n);
    for (i=1; i<=n; i++)
    {
        scanf("%lld",&nr);
        if (hsh[nr%hash_max])
            if (man_check(nr))
                cont++;
    }
    printf("%d\n",cont);
    return 0;
}