Advertisement
Farjana_akter

Untitled

Feb 13th, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<long long int>isprime;
  4. bool mark[2000000];
  5.  
  6. void sieve()
  7. {
  8. int i,j;
  9. mark[0]=true;
  10. mark[1]=true;
  11. for(i=2;i*i<=1000005;i++)
  12. {
  13. if(mark[i]==false)
  14. {
  15. for(j=2*i;j<=1000005;j+=i)
  16. {
  17. mark[j]=true;
  18. }
  19. }
  20. }
  21. for(i=2;i<=1000005;i++)
  22. {
  23. if(mark[i]==false)
  24. isprime.push_back(i);
  25. }
  26. }
  27.  
  28. long long int check(long long int n)
  29. {
  30. long long int i,j,k,a,b,c,d,ans=1,e,cnt2=0,cnt5=0;
  31. a=n;
  32. while(a/2)
  33. {
  34. a/=2;
  35. cnt2++;
  36. }
  37. a=n;
  38. while(a/5)
  39. {
  40. a/=5;
  41. cnt5++;
  42. }
  43. if(cnt2<cnt5){
  44. cnt5-=cnt2;
  45. cnt2=0;
  46. }
  47. else{
  48. cnt2-=cnt5;
  49. cnt5=0;
  50. }
  51. while(cnt5--)
  52. ans*=5;
  53. ans%=10;
  54. while(cnt2--)
  55. ans*=2;
  56. ans%=10;
  57.  
  58. for(i=0;i<isprime.size();i++)
  59. {
  60. if(isprime[i]==2 || isprime[i]==5)
  61. continue;
  62. else
  63. {
  64. a=n;
  65. while(a/isprime[i])
  66. {
  67. a/=isprime[i];
  68. ans=(ans*isprime[i])%10;
  69. }
  70. }
  71. }
  72.  
  73. return ans;
  74. }
  75.  
  76.  
  77.  
  78. int main()
  79. {
  80. sieve();
  81.  
  82. long long int n;
  83. while(cin>>n && n)
  84. {
  85. cout<<check(n)<<endl;
  86. }
  87. return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement