mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
|
#include <stack>
|
||
|
#include <cstdio>
|
||
|
#include <list>
|
||
|
#include <cassert>
|
||
|
#include <set>
|
||
|
#include <iostream>
|
||
|
#include <string>
|
||
|
#include <vector>
|
||
|
#include <queue>
|
||
|
#include <functional>
|
||
|
#include <cstring>
|
||
|
#include <algorithm>
|
||
|
#include <cctype>
|
||
|
#include <string>
|
||
|
#include <map>
|
||
|
#include <cmath>
|
||
|
using namespace std;
|
||
|
#define LL long long
|
||
|
#define ULL unsigned long long
|
||
|
#define SZ(x) (int)x.size()
|
||
|
#define Lowbit(x) ((x) & (-x))
|
||
|
#define MP(a, b) make_pair(a, b)
|
||
|
#define MS(arr, num) memset(arr, num, sizeof(arr))
|
||
|
#define PB push_back
|
||
|
#define X first
|
||
|
#define Y second
|
||
|
#define ROP freopen("input.txt", "r", stdin);
|
||
|
#define MID(a, b) (a + ((b - a) >> 1))
|
||
|
#define LC rt << 1, l, mid
|
||
|
#define RC rt << 1|1, mid + 1, r
|
||
|
#define LRT rt << 1
|
||
|
#define RRT rt << 1|1
|
||
|
const double PI = acos(-1.0);
|
||
|
const int INF = 0x3f3f3f3f;
|
||
|
const double eps = 1e-8;
|
||
|
const int MAXN = 1e7 + 2;
|
||
|
const int MOD = 1e9 + 7;
|
||
|
const int dir[][2] = { {-1, 0}, {0, -1}, { 1, 0 }, { 0, 1 } };
|
||
|
int cases = 0;
|
||
|
typedef pair<int, int> pii;
|
||
|
LL get_phi(int n)
|
||
|
{
|
||
|
int m = (int)sqrt(n+0.5);
|
||
|
int ans = n;
|
||
|
for (int i = 2; i <= m; i++) if (n % i == 0)
|
||
|
{
|
||
|
ans = ans / i * (i-1);
|
||
|
while (n % i == 0) n /= i;
|
||
|
}
|
||
|
if (n > 1) ans = ans / n * (n-1);
|
||
|
return ans;
|
||
|
}
|
||
|
int main()
|
||
|
{
|
||
|
int n;
|
||
|
while (~scanf("%d", &n))
|
||
|
{
|
||
|
printf("%d\n", get_phi(get_phi(n)));
|
||
|
}
|
||
|
return 0;
|
||
|
}
|