Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.75 KB | None | 0 0
  1. #include <iostream>
  2. #include <iostream>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <iomanip>
  6. #include <tuple>
  7. #include <math.h>
  8. #include <set>
  9. #include <stack>
  10. #include <bitset>
  11. #include <map>
  12. #include <queue>
  13. #include <random>
  14. #include <unordered_set>
  15. #include <unordered_map>
  16. #define DEBUG
  17. #define fi first
  18. #define se second
  19. #define pqueue priority_queue
  20. #define pb(x) push_back(x)
  21. // #define endl '\n'
  22. #define all(x) x.begin(), x.end()
  23. #define int long long
  24. #define mk(a, b) make_pair(a, b)
  25.  
  26. using namespace std;
  27.  
  28. typedef long long ll;
  29. typedef unsigned long long ull;
  30. typedef long double ld;
  31. typedef vector<int> vi;
  32. typedef vector<vector<int> > vvi;
  33. typedef vector<ull> vull;
  34. typedef vector<ll> vll;
  35. // typedef tuple<int, int, int> tiii;
  36. typedef pair<int, int> pii;
  37. typedef vector<pair<int, int> > vpii;
  38. typedef vector<bool> vb;
  39. typedef vector<string> vs;
  40. typedef vector< vector<int> > vvi;
  41. typedef vector<char> vc;
  42.  
  43. const int INF = 1e9;
  44. const ll INFLL = 1e18;
  45. const int MOD = 1000000007;
  46. const int MAXN = 3e5;
  47. //const ld eps = 1e-6;
  48. const ld eps2 = 1e-9;
  49. const int MOD2 = 998244353;
  50. const int dosz = 5e5;
  51. const int SZ = (1<<18);
  52. const ld PI = atan2l(0, -1);
  53.  
  54.  
  55. void fast_io(){
  56.     ios_base::sync_with_stdio(0);
  57.     cin.tie(0);
  58. #ifdef DEBUG
  59.         // freopen("a.in", "r",stdin);
  60. #else
  61.        // freopen("mxnl.in", "r", stdin);
  62.        // freopen("mxnl.out", "w", stdout);
  63. #endif
  64. }
  65.  
  66. int gcd(int a, int b){
  67.     return (b?gcd(b, a%b):a);
  68. }
  69.  
  70. void solve(){
  71.     int n;
  72.     cin >> n;
  73.     if(n==2){
  74.         cout << 1 << endl;
  75.         return;
  76.     }
  77.     int ans = 2;
  78.     int lol = n-1;
  79.     for(int i=2; i*i<=n-1; i++){
  80.         if((n-1) % i == 0){
  81.             ans++;
  82.             // cout << i << " ";
  83.             if((n-1)/i != i){
  84.                 ans++;
  85.                 // cout << (n-1)/i << " ";
  86.             }
  87.         }
  88.     }
  89.     for(int i=2; i*i<=n; i++){
  90.         if(n%i == 0){
  91.             int beta_n = n;
  92.             while(beta_n % i == 0){
  93.                 beta_n /= i;
  94.             }
  95.             if(beta_n % i == 1){
  96.                 // cout << i << " ";
  97.                 ans++;
  98.             }
  99.             if(i!=n/i){
  100.                 beta_n = n;
  101.                 int kek = n/i;
  102.                 while(beta_n % kek == 0){
  103.                     beta_n /= kek;
  104.                 }
  105.                 if(beta_n % kek == 1){
  106.                     // cout << kek << " ";
  107.                     ans++;
  108.                 }
  109.             }
  110.         }
  111.     }
  112.     // cout << endl;
  113.     cout << ans << endl;
  114.     // cout << ans << endl;
  115. }
  116.  
  117. signed main() {
  118.     fast_io();
  119.     int q = 1;
  120.     // cout << fixed << setprecision(6);
  121.     // cin >> q;
  122.     // cout << 1 << endl;
  123.     while(q--){
  124.         solve();
  125.     }
  126.     return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement