904610353
  • 板块灌水区
  • 楼主_8008008
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/12/1 19:39
  • 上次更新2024/12/1 22:27:25
查看原帖
904610353
803885
_8008008楼主2024/12/1 19:39
#include<iostream>
#include<cstring>
#define int long long
using namespace std;
const int maxn=500001;
bool prime(int x){
    for(int i=2;i*i<=x;i++){
        if(x%i==0)return false;
    }
    return true;
}
int res(int x){
    if(x<=2)return x;
    return (res(x/2)*res(x/4))%1000000;
}
int a[maxn],len,val=-EOF,ans;
signed main(){
    while(true){
        a[++len]=getchar();
        if(a[len]=='\n'){
            len--;
            break;
        }
    }
    for(int i=1;i<=len;i++){
        a[i]=(a[i]*1000000)%747+747;
    }
    while(val){
        val=0;
        for(int i=1;i<=len;i++){
            val+=a[i]*(val+1);
            val%=1000000007;
        }
        for(int i=1;i<=len;i++){
            a[i]=(a[i]*val)%998244353;
        }
        if(prime(val)&&prime(res(val))&&val>820817713)break;
    }
    printf("%lld",val);
    return 0;
}
2024/12/1 19:39
加载中...