Pagini recente » Cod sursa (job #2236292) | Cod sursa (job #2672645) | Cod sursa (job #352118) | Cod sursa (job #908673) | Cod sursa (job #1038713)
#include <algorithm>
#include <fstream>
#include <cstdio>
using namespace std;
typedef long long Int;
const int n = 276997;
long long nq;
int sol;
const int buffer_size = 1024 * 512;
char buff[buffer_size];
inline bool is_digit(const char &ch)
{
if ('0' <= ch && ch <= '9')
{
return true;
}
return false;
}
static int i = buffer_size;
inline void next_long_long(long long &number)
{
if (i == buffer_size)
{
fread(buff, buffer_size, 1, stdin);
i = 0;
}
while (!is_digit(buff[i]))
{
if (++i == buffer_size)
{
fread(buff, buffer_size, 1, stdin);
i = 0;
}
}
while (is_digit(buff[i]))
{
number = number * 10LL + buff[i] - '0';
if (++i == buffer_size)
{
fread(buff, buffer_size, 1, stdin);
i = 0;
}
}
}
inline void skip()
{
if (i == buffer_size)
{
fread(buff, buffer_size, 1, stdin);
i = 0;
}
while (buff[i] != '\n')
{
if (++i == buffer_size)
{
fread(buff, buffer_size, 1, stdin);
i = 0;
}
}
if (++i == buffer_size)
{
fread(buff, buffer_size, 1, stdin);
i = 0;
}
}
const long long list[] = {0, 2, 3, 5, 7, 11};
inline bool take(long long number)
{
for (int i = 1; i <= 5; ++i)
{
while (number % list[i] == 0)
{
number = number / list[i];
}
}
return (number == 1);
}
int main()
{
freopen("dtcsu.in", "r", stdin);
for (int i = 1; i <= n; ++i)
{
skip();
}
next_long_long(nq);
for (int i = 1; i <= nq; ++i)
{
Int foo = 0;
next_long_long(foo);
sol = sol + take(foo);
}
ofstream fout("dtcsu.out");
fout << sol << '\n';
}