結果

問題 No.1312 Snake Eyes
ユーザー ytft
提出日時 2021-05-24 04:45:07
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 692 bytes
コンパイル時間 7,126 ms
コンパイル使用メモリ 391,804 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-12 10:11:41
合計ジャッジ時間 17,891 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 61 WA * 24
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
#include <boost/multiprecision/cpp_int.hpp>
typedef boost::multiprecision::cpp_int mp;

mp pow(mp a,mp b){
    mp ans=1;
    mp temp=a;
    while(b>0){
        if(b%2){
            ans*=temp;
        }
        temp=temp*temp;
        b=b/2;
    }
    return ans;
}

int main(){
    mp N;
    cin>>N;
    mp ans=0;
    for(mp x=1;x*x+x<N;x++){
        if(N%x==0){
            ans=N/x-1;
        }
    }
    for(mp K=3;N+1>=pow(2,K);++K){
        for(mp p=2;pow(p,K-1)<=N;++p){
            if(N%(mp)((pow(p,K)-1)/(p-1))==0){
                cerr<<p<<' '<<K<<endl;
                ans=min(ans,p);
            }
        }
    }
    cout<<ans<<endl;
}
0