Advertisement
Farjana_akter

Untitled

Feb 29th, 2020
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4.  
  5. bool mark[1000006+5];
  6. ll isprime[1000006+5],psize=0;
  7.  
  8.  
  9. void sieve()
  10. {
  11. mark[0]=true;
  12. mark[1]=false;
  13.  
  14. ll i,j,k;
  15. for(i=2;i*i<=1000006;i++)
  16. {
  17. if(mark[i]==false)
  18. {
  19. for(j=i*i;j<=1000006;j+=i)
  20. {
  21. mark[j]=true;
  22. }
  23. }
  24. }
  25.  
  26. for(i=0;i<=1000006;i++)
  27. {
  28. if(mark[i]==false)
  29. isprime[psize++]=i;
  30. }
  31. }
  32.  
  33.  
  34.  
  35. ll digitsum(ll n)
  36. {
  37. ll i,j,k,sum=0;
  38. while(n)
  39. {
  40. sum+=(n%10);
  41. n/=10;
  42. }
  43. return sum;
  44. }
  45.  
  46. /*
  47. ll primefact(ll n)
  48. {
  49. ll i,j,k,a,b,c,d,e,sum=0;
  50. for(i=0;isprime[i]*isprime[i]<=n;i++)
  51. {
  52. if(n%isprime[i]==0)
  53. {
  54. c=0;
  55. while(n%isprime[i]==0)
  56. {
  57. c++;
  58. n/=isprime[i];
  59. }
  60. sum+=(c*digitsum(isprime[i]));
  61. }
  62. }
  63. if(n>1)
  64. sum+=(digitsum(n));
  65. return sum;
  66. }
  67. */
  68.  
  69.  
  70. ll primefact(ll n)
  71. {
  72. ll i,j,k,a,b,c,sum=0;
  73. a=n;
  74. while(n%2==0)
  75. {
  76. n/=2;
  77. sum+=2;
  78. }
  79. for(i=3;i*i<=n;i+=2)
  80. {
  81. if(n%i==0)
  82. {
  83. while(n%i==0)
  84. {
  85. b=i;
  86. n/=b;
  87. sum+=digitsum(b);
  88. }
  89. }
  90. }
  91. if(n>2 && n!=a)
  92. sum+=digitsum(n);
  93. return sum;
  94. }
  95.  
  96.  
  97. int main()
  98. {
  99. ll n,i,j,k,t,pf,ds;
  100. cin>>t;
  101. while(t--)
  102. {
  103. cin>>n;
  104. if(n<4)
  105. {
  106. cout<<4<<endl;
  107. continue;
  108. }
  109. i=n+1;
  110. while(1)
  111. {
  112. ds=digitsum(i);
  113. pf=primefact(i);
  114. if(ds==pf)
  115. {
  116. cout<<i<<endl;
  117. break;
  118. }
  119. else
  120. {
  121. i++;
  122. }
  123. }
  124. }
  125. return 0;
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement