結果
問題 | No.1747 Many Formulae 2 |
ユーザー |
|
提出日時 | 2021-11-19 21:34:41 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 5 ms / 2,000 ms |
コード長 | 3,487 bytes |
コンパイル時間 | 3,823 ms |
コンパイル使用メモリ | 251,920 KB |
最終ジャッジ日時 | 2025-01-25 20:02:29 |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
/*** author: Sooh* created: 19.11.2021 21:22:41**/#include<bits/stdc++.h>using namespace std;#if __has_include(<atcoder/all>)#include <atcoder/all>using namespace atcoder;//using mint = modint998244353;//using mint = modint1000000007;#endif#pragma region templateusing ll = long long;template <class T> using V = vector<T>;#define rep(i,n) for(int i=0;i<n;++i)#define all(x) (x).begin(), (x).end()#define rall(x) (x).rbegin(), (x).rend()#define sz(x) ((int)(x).size())#define pb push_back#define eb emplace_back#define fi first#define se second#ifdef LOCAL#define debug(var) do{std::cerr << "\033[1;36m" << #var << ": \033[0m";view(var);std::cerr << std::endl;}while(0)template<typename T> void view(T e){std::cerr << e;}template<typename T, typename K> void view(pair<T, K> e){std::cerr << "("; view(e.fi); std::cerr << ", "; view(e.se); std::cerr << ")";}template<typename T> void view(const set<T> &st){ std::cerr << "\n";for(const auto& e : st){view(e); std::cerr << " ";}}template<typename T, typename K> void view(const map<T, K> &mp){ std::cerr << "\n";for(const auto& [k, v]: mp){std::cerr << "("; view(k); std::cerr <<", "; view(v); std::cerr << ") ";}}template<typename T> void view(const unordered_map<int, T> &mp){ std::cerr << "\n";for(const auto& [k, v]: mp){std::cerr << "("; view(k); std::cerr <<", "; view(v); std::cerr << ") ";}}template<typename T> void view(const std::vector<T>& v){std::cerr << "\n";for(const auto& e : v){ view(e); std::cerr << " "; }}template<typename T> void view(const std::vector<std::vector<T> >& vv){std::cerr << "\n";int cnt = 0;for(const auto& v : vv){cerr << cnt << "th : ";view(v); cnt++; std::cerr << std::endl;}}#else#define debug(var) 0#endifll power(ll a, ll p){ll ret = 1; while(p){if(p & 1){ret = ret * a;} a = a * a; p >>= 1;} return ret;}ll modpow(ll a, ll p, ll mod){ll ret = 1; while(p){if(p & 1){ret = ret * a % mod;} a = a * a % mod; p >>= 1;} return ret;}ll modinv(ll a, ll m) {ll b = m, u = 1, v = 0; while (b) {ll t = a / b ;a -= t * b; swap(a, b);u -= t * v; swap(u, v);}u %= m;if (u < 0) u += m;returnu;}template<class T, class K>bool chmax(T &a, const K b) { if (a<b) { a=b; return 1; } return 0; }template<class T, class K>bool chmin(T &a, const K b) { if (b<a) { a=b; return 1; } return 0; }#pragma endregionint dx[]={1,0,-1,0};int dy[]={0,1,0,-1};const int inf = 1001001001;const ll INF = 1001001001001001001ll;//const double pi = acos(-1);//const ll mod = 998244353;const ll mod = 1000000007;int main(){cin.tie(nullptr);ios::sync_with_stdio(false);//cout << fixed << setprecision(20);string s; cin >> s;int n = sz(s) - 1;int ans = 0;if(sz(s) == 1){int k = stoi(s);if(k == 2 || k == 3 || k == 5 || k == 7){cout << 1 << endl;return 0;}else{cout << 0 << endl;return 0;}}for(int i = 0; i < 1 << n; i++){V<ll> a;int b = 0;for(int j = 0; j < n; j++){if(i >> j & 1){a.pb(stoll(s.substr(b, j + 1 - b)));b = j + 1;}}debug(b);a.pb(stoll(s.substr(b, sz(s) - b)));debug(a);ll s = accumulate(all(a), 0ll);debug(s);bool ok = true;for(ll j = 2; j * j <= s; j++){if(s % j == 0) ok = false;}if(ok) ans++;}cout << ans << endl;}