#include <cstdio> int check(int n, int a) { int kl = n / a - 1; if (kl < 2) { return 0; } int x = 0; for (int d = 1; d * d <= kl; ++d) { if (kl % d != 0) { continue; } if (d > 1 && kl / d > 2) { ++x; } if (d * d != kl && d > 2 && kl / d > 1) { ++x; } } return x; } int main() { int n; scanf("%d", &n); int x = 0; for (int d = 1; d * d <= n; ++d) { if (n % d != 0) { continue; } x += check(n, d); if (d * d != n) { x += check(n, n / d); } } printf("%d\n", x); 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 | #include <cstdio> int check(int n, int a) { int kl = n / a - 1; if (kl < 2) { return 0; } int x = 0; for (int d = 1; d * d <= kl; ++d) { if (kl % d != 0) { continue; } if (d > 1 && kl / d > 2) { ++x; } if (d * d != kl && d > 2 && kl / d > 1) { ++x; } } return x; } int main() { int n; scanf("%d", &n); int x = 0; for (int d = 1; d * d <= n; ++d) { if (n % d != 0) { continue; } x += check(n, d); if (d * d != n) { x += check(n, n / d); } } printf("%d\n", x); return 0; } |