結果
問題 | 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;}