# include # include #include # include #include #include #include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include using namespace std; using LL = long long; using ULL = unsigned long long; constexpr long long MOD = 1000000000 + 7; constexpr long long INF = std::numeric_limits::max(); const double PI = acos(-1); #define fir first #define sec second typedef pair Pll; typedef pair> Ppll; typedef pair>> Pbll; typedef pair>> Pvll; typedef pair Vec2; struct Tll { LL first, second, third; }; typedef pair Ptll; #define rep(i,rept) for(LL i=0;i=0;i--) LL h, w, n, m, k, s, t, q, sum, last[10], ans, cnt, a[200010],b[200010], dp[200010]; struct Edge { LL to, cost,mon; }; string str; bool f[200010]; void YN(bool f) { if (f) cout << "YES" << endl; else cout << "NO" << endl; } void yn(bool f) { if (f) cout << "Yes" << endl; else cout << "No" << endl; } vectorvec[100000]; LL ff(LL x) { if (dp[x] != 0)return dp[x]; if (x / 10 > 0) { LL ss = 0, num = x; while (num > 0) { ss += num % 10; num /= 10; } dp[x] = ff(ss); } else dp[x] = x; return dp[x]; } int main() { cin >> n >> m; f[1] = 1; for (int i = 2; i*i <= m; i++) { if (!f[i]) for (int j = 2; j*i <= m; j++) { f[i*j] = 1; } } for(int i=n;i<=m;i++) if (!f[i]) { a[cnt] = ff(i); b[cnt] = i; cnt++; } rep(i, cnt) { bitset<10>bi = {}; LL j = i; while (j