| Run ID | Author | Problem | Lang | Verdict | Time | Memory | Code Length | Submit Time |
|---|---|---|---|---|---|---|---|---|
| 76500 | sh25_shenpy | 麦森数 | C++ | Accepted | 6 MS | 264 KB | 972 | 2025-12-19 15:14:06 |
#include<bits/stdc++.h> int n,a[1010],res[1010],cnt; void multiply1(){ int tmp[1010]={0}; for(int i=0;i<500;i++){ for(int j=0;j<500;j++) tmp[i+j]+=res[i]*a[j]; } int t=0; for(int i=0;i<500;i++){ tmp[i]+=t; res[i]=tmp[i]%10; t=tmp[i]/10; } } void multiply2(){ int tmp[1010]={0}; for(int i=0;i<500;i++){ for(int j=0;j<500;j++) tmp[i+j]+=a[i]*a[j]; } int t=0; for(int i=0;i<500;i++){ tmp[i]+=t; a[i]=tmp[i]%10; t=tmp[i]/10; } } void quick_pow(int p){ res[0]=1,a[0]=2; while(p){ if(p&1) multiply1(); multiply2(); p>>=1; } } int main(){ scanf("%d",&n); int length=n*log10(2)+1; printf("%d\n",length); quick_pow(n); res[0]-=1; for(int i=499;i>=0;i--){ if(cnt==50) printf("\n"),cnt=0; printf("%d",res[i]); cnt++; } return 0; }