๐ก๐ธ๐ธ๐ถ๐ฃ: ๐๐๐๐๐๐พ๐๐ฝ๐/์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด
BOJ1016 : ์ ๊ณฑใดใด์ (Gold 1)
์ฐํ์ฌ
2021. 7. 21. 23:40
#include <stdio.h>
#include <iostream>
#include <cmath>
using namespace std;
int save[1000001] = {
0,
};
void checkfunc(unsigned long long start, unsigned long long end)
{
int a = end - start;
for (unsigned long long i = 2; i <= sqrt(end); i++)
{
unsigned long long tmp = pow(i, 2);
long double k = ceil((long double)start / (long double)tmp);
for (long long j = (long long)k; tmp * j <= end; j++)
{
save[tmp * j - start] = 1;
// cout << tmp * j << "true\n";
}
}
}
int main()
{
unsigned long long min, max;
unsigned long long cnt = 0;
cin >> min >> max;
checkfunc(min, max);
for (int i = 0; i <= max - min; i++)
{
if (save[i] == 1)
continue;
else
cnt++;
}
cout << cnt;
}