diff --git "a/khj20006/202510/03 BOJ G2 \354\213\234\352\267\270\353\247\210 \355\225\250\354\210\230.md" "b/khj20006/202510/03 BOJ G2 \354\213\234\352\267\270\353\247\210 \355\225\250\354\210\230.md" new file mode 100644 index 00000000..13da57ae --- /dev/null +++ "b/khj20006/202510/03 BOJ G2 \354\213\234\352\267\270\353\247\210 \355\225\250\354\210\230.md" @@ -0,0 +1,34 @@ +```cpp +#include +using namespace std; +using ll = long long; + +ll N; + +unordered_set m; +bitset<1000001> e; +vector p = {2}; + +void bck(ll n) { + for(ll i:p) { + if((__int128)n*i > (__int128)N) break; + if(m.count(n*i)) continue; + m.insert(n*i); + bck(n*i); + } +} + +int main(){ + cin.tie(0)->sync_with_stdio(0); + + for(int i=2;i*i<=1000000;i++) if(!e[i]) for(int j=i*i;j<=1000000;j+=i) e[j] = 1; + for(ll i=3;i<=1000000;i++) if(!e[i]) p.push_back(i*i); + + cin>>N; + m.insert(1); + bck(1); + + cout<