結果
問題 | No.312 置換処理 |
ユーザー | itezpace |
提出日時 | 2016-09-09 09:44:07 |
言語 | C++11 (gcc 11.4.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,111 bytes |
コンパイル時間 | 396 ms |
コンパイル使用メモリ | 56,652 KB |
最終ジャッジ日時 | 2024-11-14 19:48:52 |
合計ジャッジ時間 | 869 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:25:8: error: ‘sqrt’ was not declared in this scope 25 | ll m=sqrt(n)+1; | ^~~~
ソースコード
#include <iostream> #include <vector> #include <algorithm> typedef long long ll; using namespace std; vector<ll> eratosthenes(ll m){ vector<ll> primes(m+1); for(ll i=2; i<m+1; ++i){ primes[i]=i; } for(ll i=2; i*i<m+1; ++i){ if(primes[i]){ for(ll j=i*i; j<m+1; j+=i){ primes[j]=0; } } } return primes; } int main(){ ll n,x; cin>>n; ll m=sqrt(n)+1; vector<ll> v=eratosthenes(m); vector<ll> v2; for(ll i=0; i<m; ++i){ if(v[i]) v2.push_back(v[i]); } vector<ll> v3; for(ll i=0; i<v2.size(); ++i){ ll a=v2[i]; while(1){ if(n%a==0){ n/=a; v3.push_back(a); } else { break; } } } if(v3.size()==0){ x=n; } else { ll c=0; ll c2=0; for(ll i=0; i<v3.size(); ++i){ if(v3[i]==2){ c+=1; } else if(v3[i]==3){ c2+=1; } else { break; } } if(c>=2){ if(c2==0) x=4; else x=3; } else if(c==1){ if(v3.size()>1) x=v3[1]; else x=n; } else if(c==0){ x=v3[0]; } } cout<<x<<endl; return 0; }