結果
問題 | No.1747 Many Formulae 2 |
ユーザー |
|
提出日時 | 2021-11-19 21:33:32 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,091 bytes |
コンパイル時間 | 1,830 ms |
コンパイル使用メモリ | 167,388 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-31 21:42:01 |
合計ジャッジ時間 | 2,391 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
#include<bits/stdc++.h> #define REP(i,n) for(int i=0,i##_len=int(n);i<i##_len;++i) #define rep(i,a,b) for(int i=int(a);i<int(b);++i) #define All(x) (x).begin(),(x).end() #define rAll(x) (x).rbegin(),(x).rend() using namespace std; using ll = long long; int main(){ string s; cin>>s; int ans = 0; for(int bit = 0; bit < (1<<(s.size()-1));bit++ ) { ll num = 0; ll num_tmp = 0; for( int i = 0; i < s.size(); i++) { num_tmp *= 10; num_tmp += s[i] - '0'; if( bit >> i & 1 ) { num += num_tmp; num_tmp = 0; } } num += num_tmp; bool prime = true; if( num == 0 || num == 1) continue; for(ll i = 2; i < sqrt(num) + 1;i++ ) { if( num%i == 0 ) { prime = false; break; } } if( num == 2 ) prime = true; //cerr << num << " " << (prime ? "prime" : "false") << endl; if(prime) ans++; } cout << ans <<endl; }