Cod sursa(job #1032370)

Utilizator darrenRares Buhai darren Data 15 noiembrie 2013 19:21:03
Problema Dtcsu Scor 20
Compilator cpp Status done
Runda FMI No Stress 4 Marime 1.13 kb
#include <fstream>
#include <algorithm>
#include <unordered_set>
 
using namespace std;
 
ifstream fin("dtcsu.in");
ofstream fout("dtcsu.out");
 
char parse[1 << 18], *now;
inline void verify()
{
    if (*now == 0)
    {
        fin.get(parse, 1 << 18, '\0');
        now = parse;
    }
}
long long get()
{
    while (!(*now >= '0' && *now <= '9'))
    {
        ++now;
        verify();
    }
     
    long long num = 0;
    while (*now >= '0' && *now <= '9')
    {
        num = num * 10 + (*now - '0');
        ++now;
        verify();
    }
    return num;
}
 
unordered_set<long long> S;
int Q, result;
 
int main()
{
    now = parse;
    verify();
     
    long long num;
    for (int i = 1; i <= 276997; ++i)
        num = get();
     
    Q = get();
    for (int i = 1; i <= Q; ++i)
    {
        num = get();
         
        while (num % 2 == 0) num /= 2;
        while (num % 3 == 0) num /= 3;
        while (num % 5 == 0) num /= 5;
        while (num % 7 == 0) num /= 7;
        while (num % 11 == 0) num /= 11;
         
        if (num == 1) ++result;
    }
     
    fout << result << '\n';
     
    fin.close();
    fout.close();
}