結果
問題 |
No.577 Prime Powerful Numbers
|
ユーザー |
|
提出日時 | 2025-04-25 22:03:20 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,664 bytes |
コンパイル時間 | 932 ms |
コンパイル使用メモリ | 78,008 KB |
実行使用メモリ | 7,848 KB |
最終ジャッジ日時 | 2025-04-25 22:03:31 |
合計ジャッジ時間 | 3,282 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 1 RE * 9 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:50:26: warning: ‘m’ may be used uninitialized [-Wmaybe-uninitialized] 50 | for(int p=1;p<=m;p++){ | ~^~~ main.cpp:47:13: note: ‘m’ was declared here 47 | int m; | ^
ソースコード
#include<iostream> #include<cmath> #define int long long #define maxn 210 #define maxm 1000010 using namespace std; namespace IO{ int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-')f=-f; ch=getchar(); } while(ch>='0'&&ch<='9'){ x=x*10+ch-'0'; ch=getchar(); }return x*f; } void print(int x){ if(x<0){ x=-x; putchar('-'); } if(x>9)print(x/10); putchar(x%10+'0'); } }using namespace IO; int q,n,a,b[maxm]; bool vis[maxm]; int qpow(int a,int b){ int ans=1; while(b){ if(b&1)ans=ans*a; b=b>>1;a=a*a; }return ans; } signed main(){ q=read(); for(int i=2;i<maxm;i++)vis[i]=1; for(int i=2;i*i<maxm+10;i++){ if(!vis[i])continue; for(int j=i*2;j<maxm;j+=i)vis[j]=0; } for(int i=1;i<maxm;i++)if(vis[i])b[++a]=i; for(int i=1;i<=q;i++){ n=read(); int m; for(int j=1;j<maxm;j++)if(b[j]>n){m=j-1;break;} for(int j=1;j<=60;j++){ for(int p=1;p<=m;p++){ int x=qpow(b[p],j); if(x<0||x>n)continue; for(int k=1;k<=60;k++){ for(int c=1;c<=m;c++){ int y=qpow(b[c],k); if(y<0||y>n)continue; if(x+y==n){ cout<<"Yes\n"; goto yu; } } } } }cout<<"No\n"; yu:continue; } return 0; }