#include <bits/stdc++.h>
#define REP(i, n) for(int i = 0; i < n; i++)
#define BCK(i, n) for(int i = n-1; i >= 0; i--)
#define FWD(i, a, b) for(int i = a; i < b; i++)
#define pb push_back
#define st first
#define nd second
#define vi vector<int>
#define vll vector<long long>
#define pi pair<int, int>
#define pll pair<long long, long long>
#define vpi vector<pi>
#define vpll vector<pll>
#define mp(a, b) make_pair(a,b)
using namespace std;
typedef long long LL;
typedef double ld;
const LL p = 1000000007;
int inner(int k) {
int result = 0;
int sq = sqrt(k);
for(int z = 2; z <= sq; ++z) {
if(k%z == 0) {
if(k/z == z) {
result += z > 2;
} else {
result += z > 2;
result += 1;
}
}
}
return result;
}
int main() {
std::ios::sync_with_stdio(false);
int n, m, t;
unsigned N, result = 0;
cin >> N;
unsigned sqr = sqrt(N);
for(int i = 1; i <= sqr; ++i) {
if(N%i == 0) {
if(N/i == i) {
result += inner(i - 1);
} else {
result += inner(i - 1);
result += inner(N/i -1);
}
}
}
cout << result << endl;
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #include <bits/stdc++.h> #define REP(i, n) for(int i = 0; i < n; i++) #define BCK(i, n) for(int i = n-1; i >= 0; i--) #define FWD(i, a, b) for(int i = a; i < b; i++) #define pb push_back #define st first #define nd second #define vi vector<int> #define vll vector<long long> #define pi pair<int, int> #define pll pair<long long, long long> #define vpi vector<pi> #define vpll vector<pll> #define mp(a, b) make_pair(a,b) using namespace std; typedef long long LL; typedef double ld; const LL p = 1000000007; int inner(int k) { int result = 0; int sq = sqrt(k); for(int z = 2; z <= sq; ++z) { if(k%z == 0) { if(k/z == z) { result += z > 2; } else { result += z > 2; result += 1; } } } return result; } int main() { std::ios::sync_with_stdio(false); int n, m, t; unsigned N, result = 0; cin >> N; unsigned sqr = sqrt(N); for(int i = 1; i <= sqr; ++i) { if(N%i == 0) { if(N/i == i) { result += inner(i - 1); } else { result += inner(i - 1); result += inner(N/i -1); } } } cout << result << endl; return 0; } |
English