fork(3) download
  1. #include <algorithm>
  2. #include <bitset>
  3. #include <cassert>
  4. #include <cctype>
  5. #include <cmath>
  6. #include <cstdio>
  7. #include <cstdlib>
  8. #include <cstring>
  9. #include <ctime>
  10. #include <deque>
  11. #include <functional>
  12. #include <iomanip>
  13. #include <iostream>
  14. #include <limits>
  15. #include <list>
  16. #include <map>
  17. #include <memory>
  18. #include <numeric>
  19. #include <queue>
  20. #include <set>
  21. #include <sstream>
  22. #include <stack>
  23. #include <string>
  24. #include <utility>
  25. #include <vector>
  26.  
  27. using namespace std;
  28.  
  29. #ifndef ONLINE_JUDGE
  30. bool debug = false;
  31. #else
  32. bool debug = true;
  33. #endif
  34.  
  35. typedef long long unsigned llu;
  36. typedef long long lld;
  37. typedef long ld;
  38.  
  39. //definition
  40. #define vi vector < int >;
  41. #define pii pair <int, int>;
  42. #define vlld vector <lld>;
  43.  
  44. #define gc() getchar()
  45. #define pc() putchar()
  46. #define rr freopen("input.txt", "r", stdin)
  47. #define wr freopen("output.txt", "w", stdout)
  48.  
  49. #define MOD 100000
  50. #define MAX 100005
  51. #define pi 3.14159265358979
  52. #define ESP (1e-9)
  53.  
  54. #define fu(i,a,n) for(i=a;i<n;i++)
  55. #define fue(i,a,n) for(i=a;i<=n;i++)
  56. #define fd(i,n,a) for(i=n;i>a;i--)
  57. #define fde(i,n,a) for(i=n;i>=a;i--)
  58. #define fr(i,a) for(i=0;i<a;i++)
  59. #define fe(i,a) for(i=0;i<=a;i++)
  60.  
  61. #define sd(n) scanf("%d",&n)
  62. #define sld(n) scanf("%ld",&n)
  63. #define slld(n) scanf("%lld",&n)
  64. #define pfd(n) printf("%d",n)
  65. #define pfld(n) printf("%ld",n)
  66. #define pflld(n) printf("%lld",n)
  67.  
  68. #define ff first
  69. #define ss second
  70. #define sz size()
  71. #define clr clear()
  72. //#define len length()
  73. #define pb push_back
  74. #define mp make_pair
  75. #define gcd(a,b) __gcd(a,b)
  76. #define all(vi) vi.begin(), vi.end()
  77. #define mem(i,n) memset(i,n,sizeof(i))
  78.  
  79. #define imax numeric_limits<int>::max()
  80. #define imin numeric_limits<int>::min()
  81. #define ldmax numeric_limits<ld>::max()
  82. #define ldmin numeric_limits<ld>::min()
  83. #define lldmax numeric_limits<lld>::max()
  84. #define lldmin numeric_limits<lld>::min()
  85. #define tr(container, it) for(typeof(container.begin()) it = container.begin(); it != container.end(); it++)
  86. //end of definition
  87.  
  88. //fast input
  89.  
  90. int scan_d() {register int c=gc();int x=0;for(;(c<48 || c>57);c = gc());for(;c>47 && c<58;c = gc()){x = (x<<1) + (x<<3) + c - 48;}return x;}
  91. ld scan_ld() {register ld c=gc();ld x=0;for(;(c<48 || c>57);c = gc());for(;c>47 && c<58;c = gc()){x = (x<<1) + (x<<3) + c - 48;}return x;}
  92. lld scan_lld() {register lld c=gc();lld x=0;for(;(c<48 || c>57);c = gc());for(;c>47 && c<58;c = gc()){x = (x<<1) + (x<<3) + c - 48;}return x;}
  93. llu scan_llu() {register llu c=gc();llu x=0;for(;(c<48 || c>57);c = gc());for(;c>47 && c<58;c = gc()){x = (x<<1) + (x<<3) + c - 48;}return x;}
  94.  
  95. //end of fast input
  96.  
  97. //fast output
  98.  
  99. //no line break
  100. void print_d(int n) {if(n<0){n=-n;putchar('-');}int i=10;char output_buffer[10];do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<10);}
  101. void print_ld(ld n) {if(n<0){n=-n;putchar('-');}int i=11;char output_buffer[11];do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<11);}
  102. void print_lld(lld n) {if(n<0){n=-n;putchar('-');}int i=21;char output_buffer[21];do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<21);}
  103. void print_llu(llu n) {int i=21;char output_buffer[21];do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<21);}
  104.  
  105. //new line
  106. void println_d(int n) {if(n<0){n=-n;putchar('-');}int i=10;char output_buffer[11];output_buffer[10]='\n';do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<11);}
  107. void println_ld(ld n) {if(n<0){n=-n;putchar('-');}int i=11;char output_buffer[12];output_buffer[11]='\n';do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<12);}
  108. void println_lld(lld n) {if(n<0){n=-n;putchar('-');}int i=21;char output_buffer[22];output_buffer[21]='\n';do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<22);}
  109. void println_llu(llu n) {int i=21;char output_buffer[22];output_buffer[21]='\n';do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<22);}
  110.  
  111. //special char
  112. char sp;
  113. void printsp_d(int n) {if(n<0){n=-n;putchar('-');}int i=10;char output_buffer[11];output_buffer[10]=sp;do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<11);}
  114. void printsp_ld(ld n) {if(n<0){n=-n;putchar('-');}int i=11;char output_buffer[12];output_buffer[11]=sp;do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<12);}
  115. void printsp_lld(lld n) {if(n<0){n=-n;putchar('-');}int i=21;char output_buffer[22];output_buffer[21]=sp;do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<22);}
  116. void printsp_llu(llu n) {int i=21;char output_buffer[22];output_buffer[21]=sp;do{output_buffer[--i]=(n%10)+'0';n/=10;}while(n);do{putchar(output_buffer[i]);}while(++i<22);}
  117.  
  118. //end of fast output
  119.  
  120. bool arr[32000];
  121. llu primes[16000];
  122. llu c;
  123. void makeprime()
  124. {
  125. llu i,j;
  126. mem(arr,true);
  127. arr[1]=false;
  128. for(i=2; i*i<=32000; i++)
  129. {
  130. if(arr[i])
  131. {
  132. for(j=2*i;j<=32000;j+=i)
  133. arr[j]=false;
  134. }
  135. }
  136. for(i=2;i<=32000;i++)
  137. {
  138. if(arr[i])
  139. primes[c++]=i;
  140. }
  141. }
  142.  
  143. int main()
  144. {
  145. int t;
  146. t=scan_d();
  147. llu n,m,i,j,temp,p,l;
  148. makeprime();
  149. while(t--)
  150. {
  151. m=scan_llu();
  152. n=scan_llu();
  153. if(m<2)
  154. m=2;
  155. l=n-m+1;
  156. bool a[l];
  157. mem(a,true);
  158. i=0;
  159. while(1)
  160. {
  161. p=primes[i];
  162. //println_llu(p);
  163. if(p*p>n)
  164. break;
  165. temp=(m/p)*p;
  166. if(temp<m)
  167. temp+=p;
  168. if(temp==p)
  169. temp+=p;
  170. for(;temp<=n;temp+=p)
  171. a[temp-m]=false;
  172. i++;
  173. }
  174. fr(i,l)
  175. {
  176. if(a[i])
  177. println_llu(i+m);
  178. }
  179. }
  180. return 0;
  181. }
Success #stdin #stdout 0s 3260KB
stdin
2
1 10
3 5
stdout
2
3
5
7
3
5