Advertisement
Falak_Ahmed_Shakib

number theory

Nov 16th, 2021 (edited)
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. prime vector 1- 1e7
  2.  
  3. const int N=1e7;
  4. bool prime[N+2];
  5. vector<ll>v;
  6. void sieve()
  7. {
  8. v.pb(2);
  9. for(ll i=3;i<=N;i+=2)
  10. {
  11. if(prime[i]==false)
  12. {
  13. v.pb(i);
  14. for(ll j=i*i;j<=N;j+=(i+i))
  15. {
  16. prime[j]=true;
  17. }
  18. }
  19. }
  20.  
  21.  
  22. //cout<<"total size for "<<N<<"PRIME NUMBER = "<<v.size()<<endl;
  23. for(ll i=0;i<v.size();i++)
  24. {
  25. // cout<<v[i]<<endl;
  26. }
  27. }
  28.  
  29.  
  30.  
  31. /////////////////////////////----------------------////////////////////////
  32.  
  33.  
  34.  
  35. /// segment_seive
  36. #include<bits/stdc++.h>
  37. using namespace std;
  38. typedef long long ll;
  39. typedef pair<ll,ll> pll;
  40. #define fastread() (ios_base:: sync_with_stdio(false),cin.tie(NULL))
  41. #define fi first
  42. #define se second
  43. #define pb push_back
  44. ll const MOD=1000000007;
  45. #define eb emplace_back
  46. const int N=1e5;
  47. ll a[N+1];
  48. vector<ll>v;
  49. void sieve()
  50. {
  51. v.pb(2);
  52. for(ll i=3;i<=N;i+=2)
  53. {
  54. if(a[i]==0)
  55. {
  56. v.pb(i);
  57. for(ll j=i+i;j<=N;j+=i)
  58. {
  59. a[i]=1;
  60. }
  61. }
  62. }
  63.  
  64.  
  65. }
  66. void segment_seive(ll l,ll r)
  67. {
  68.  
  69. ll len=r-l+10;
  70. ll m[len+10];
  71. memset(m,0,sizeof(m));
  72. if(l==1)m[0]=1;
  73. for(ll i=0;v[i]*v[i]<=r;i++)
  74. {
  75. // cout<<"base "<<v[i]<<endl;
  76. ll base=v[i]*v[i];
  77. if(base<l)base=((v[i]+l-1)/v[i])*v[i];
  78. for(ll j=base;j<=r;j+=v[i])
  79. {
  80. m[j-l]=1;
  81. // cout<<j<<" ";
  82. }
  83. }
  84.  
  85. for(ll i=l;i<=r;i++)
  86. {
  87. if(m[i-l]==0)cout<<i<<endl;
  88. }
  89.  
  90.  
  91. }
  92. int main()
  93. {
  94. fastread();
  95. sieve();
  96.  
  97. ll t;
  98. cin>>t;
  99.  
  100. while(t--)
  101. {
  102. ll l,r;
  103. cin>>l>>r;
  104. segment_seive(l,r);
  105.  
  106. }
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113. }
  114.  
  115. ///////////////////-----------------------------------////////////////////
  116.  
  117.  
  118.  
  119. divsor count by prime factors IT WORKS FOR the value 2*N) ( IF N= 6 THEN 1E12 AND IF N=7 THEN N=14)
  120.  
  121.  
  122. const int N=1e6;
  123. bool prime[N+2];
  124. vector<ll>v;
  125. void sieve()
  126. {
  127. v.pb(2);
  128. for(ll i=3;i<=N;i+=2)
  129. {
  130. if(prime[i]==false)
  131. {
  132. v.pb(i);
  133. for(ll j=i*i;j<=N;j+=(i+i))
  134. {
  135. prime[j]=true;
  136. }
  137. }
  138. }
  139.  
  140.  
  141. // cout<<"total size for "<<N<<" PRIME NUMBER = "<<v.size()<<endl;
  142. // for(ll i=0;i<v.size();i++)
  143. {
  144. // cout<<v[i]<<endl;
  145. }
  146. }
  147.  
  148. ll div_counting(ll n)
  149. {
  150. ll ans=1;
  151.  
  152. for(ll i=0;v[i]*v[i]<=n and i<v.size();i++)
  153. {
  154. ll cnt=1;
  155. while(n%v[i]==0)
  156. {
  157. n/=v[i];
  158. cnt++;
  159. }
  160. ans*=cnt;
  161. }
  162.  
  163. if(n>1)ans*=2;
  164.  
  165.  
  166. return ans;
  167.  
  168.  
  169. }
  170.  
  171.  
  172.  
  173.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement