diff --git "a/khj20006/202601/03 BOJ P2 \354\265\234\353\214\200\352\263\265\354\225\275\354\210\230 \352\262\214\354\236\204.md" "b/khj20006/202601/03 BOJ P2 \354\265\234\353\214\200\352\263\265\354\225\275\354\210\230 \352\262\214\354\236\204.md" new file mode 100644 index 00000000..966cc0eb --- /dev/null +++ "b/khj20006/202601/03 BOJ P2 \354\265\234\353\214\200\352\263\265\354\225\275\354\210\230 \352\262\214\354\236\204.md" @@ -0,0 +1,41 @@ +```cpp +#include +using namespace std; + +int N, X; +vector primes; +bool ex[301][512]{}; +bitset<512> base; + +int main() { + cin.tie(0)->sync_with_stdio(0); + + cin>>N>>X; + for(int i=2;i*i<=X;i++) if(X%i == 0) { + primes.push_back(i); + while(X%i == 0) X /= i; + } + if(X != 1) primes.push_back(X); + + ex[0][(1<>a; + int mask = 0; + for(int j=0;j=0;j--) for(int k=1;k<512;k++) if(ex[j][k] && (k&mask)) { + ex[j+1][k&mask] = 1; + if(k != mask) base[k] = 1; + } + } + + for(int k=1;k<512;k++) if(!base[k]) { + for(int j=N;j>=0;j--) if(ex[j][k]) { + if(j&1) return cout<<"First",0; + break; + } + } + cout<<"Second"; + +} +```