fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int lastNonZeroDigit(int n) {
  5. int result = 1;
  6. int count2 = 0, count5 = 0;
  7.  
  8. for (int i = 1; i <= n; i++) {
  9. int num = i;
  10.  
  11. while (num % 2 == 0) {
  12. count2++;
  13. num /= 2;
  14. }
  15.  
  16. while (num % 5 == 0) {
  17. count5++;
  18. num /= 5;
  19. }
  20.  
  21. result = (result * num) % 10;
  22. }
  23.  
  24. int diff = count2 - count5;
  25. for (int i = 0; i < diff; i++) {
  26. result = (result * 2) % 10;
  27. }
  28.  
  29. return result;
  30. }
  31.  
  32. int main() {
  33. int n;
  34. cin >> n;
  35. cout << lastNonZeroDigit(n) << endl;
  36. return 0;
  37. }
  38.  
Success #stdin #stdout 0s 5264KB
stdin
Standard input is empty
stdout
6