Advertisement
PSYCHAMERON

UVa ones

Feb 7th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define pb push_back
  3. #define mp make_pair
  4. using namespace std;
  5. typedef unsigned int uint;
  6. typedef long long int llint;
  7. typedef pair<int, int> pii;
  8.  
  9. llint solve(llint a);
  10. llint bigMod(llint b, llint p, llint m);
  11.  
  12. //========================\\main//========================//
  13. int main()
  14. {
  15.     llint a;
  16.  
  17.     while(cin >> a)
  18.     {
  19.         cout << solve(a) << '\n';
  20.     } // end of while
  21.  
  22.     return 0;
  23. }
  24. //========================\\main//========================//
  25.  
  26. llint solve(llint a)
  27. {
  28.     llint sumMod = 0;
  29.     llint res = 1;
  30.     int temp;
  31.  
  32.     for(llint i = 0; ; i++)
  33.     {
  34.         sumMod += bigMod(10, i, a);
  35.  
  36.         // cout << (int)myPow(10, i) << '\n';
  37.         if( (sumMod % a) == 0 ) return i + 1;
  38.  
  39.         // cout << res << endl;
  40.         //res = res * 10;
  41.     } // end of for
  42. }///////////////////////////////////////////////////////////
  43.  
  44. llint bigMod(llint b, llint p, llint m)
  45. {
  46.     if(p == 0)
  47.     {
  48.         return 1 % m;
  49.     }
  50.  
  51.     if(p%2 == 0)
  52.     {
  53.         llint ret = bigMod(b, p / 2, m);
  54.         return ( (ret % m) * (ret % m) ) % m;
  55.     }
  56.     else
  57.     {
  58.         return ((b % m) * (bigMod(b, p - 1, m) % m)) % m;
  59.     }
  60. } /////////////////////////////////////
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement