fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define ll long long
  6. #define ull unsigned ll
  7. #define ld long double
  8. typedef vector<int> vi;
  9. typedef multiset<int> mi;
  10. typedef multiset<ll> mll;
  11. typedef vector<ll> vll;
  12. typedef vector<bool> vb;
  13. typedef vector<string> vs;
  14. typedef set<ll> sll;
  15. typedef vector<vector<int>> _2vi;
  16. typedef vector<vector<ll>> _2vll;
  17. #define all(v) ((v).begin()), ((v).end())
  18. #define sz(v) ((ll)((v).size()))
  19.  
  20. #define vinp(v, n) \
  21.   for (ull i = 0; i < (n); i++) \
  22.   cin >> (v)[i]
  23. #define printv(v) \
  24.   for (auto i : (v)) \
  25.   cout << i << " "
  26. #define fr0(i, n) for (ull(i) = 0; (i) < (n); (i)++)
  27. #define fr1(i, n) for (ull(i) = 1; (i) < (n); (i)++)
  28. #define fr(i, x, n) for (ull(i) = (x); (i) < (n); (i)++)
  29. #define _CRT_SECURE_NO_WARNING
  30. const ll MOD = 1000000007;
  31.  
  32. void Bustany() {
  33. ios_base::sync_with_stdio(false);
  34. cin.tie(NULL);
  35. cout.tie(NULL);
  36. #ifndef ONLINE_JUDGE
  37. freopen("./in.txt", "r", stdin), freopen("./out.txt", "w", stdout);
  38. #endif
  39. }
  40.  
  41. const ll N = 1e5 + 5;
  42. vector<sll> adj(N);
  43. //_2vll adj(N,vll(N));
  44. vb vis;
  45.  
  46. /*
  47.  ? Find all prime numbers from 1 to n
  48.  ? Complexity : O[n * log(log(n))]
  49.  */
  50. vector<ll> sieve(int n) {
  51. vector<bool> isPrime(n + 1, 1);
  52. isPrime[0] = isPrime[1] = 0;
  53.  
  54. for (ll i = 2; i * i <= n; i++) {
  55. if (isPrime[i]) {
  56. for (ll j = i * i; j <= n; j += i)
  57. isPrime[j] = false;
  58. }
  59. }
  60. vector<ll> primes;
  61. for (ll i = 2; i < n + 1; i++) {
  62. if (isPrime[i]) primes.push_back(i);
  63. }
  64. return primes;
  65. }
  66.  
  67.  
  68. void solve() {
  69. vll p = sieve(100);
  70. sll v;
  71. ll i = 0;
  72. string ans;
  73. for (; i < p.size(); i++) {
  74. if (p[i] > 50) {
  75. cout << "prime\n";
  76. cout.flush();
  77. return;
  78. }
  79. cout << p[i] << endl;
  80. cout.flush();
  81. cin >> ans;
  82. if (ans == "yes") {
  83. for (int j = 0; j < p.size(); j++) {
  84. if (p[i] * p[j] <= 100)v.insert(p[i] * p[j]);
  85. }
  86. for (auto s: v) {
  87. cout << s << endl;
  88. cout.flush();
  89. cin >> ans;
  90. if (ans == "yes") {
  91. cout << "composite\n";
  92. cout.flush();
  93. return;
  94. }
  95. }
  96. cout << "prime\n";
  97. cout.flush();
  98. }
  99. }
  100. cout << "prime\n";
  101. cout.flush();
  102. }
  103.  
  104. int main() {
  105. Bustany();
  106. ll t = 1;
  107. // cin >> t;
  108. while (t--) {
  109. solve();
  110. }
  111. }
Success #stdin #stdout 0.01s 7684KB
stdin
Standard input is empty
stdout
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
prime