#include <cstdio> using namespace std; #define INT(x) int x; scanf("%d", &x) int pairs(int n) { int r = 0; for (int d = 2; d * d <= n; ++d) { if (n % d) continue; if (2 * d < n) ++r; if (d > 2 && d * d < n) ++r; } return r; } int triples(int n) { int r = 0; for (int d = 1; d * d <= n; ++d) { if (n % d) continue; r += pairs(n / d - 1); if (d > 1 && d * d < n) r += pairs(d - 1); } return r; } int main() { INT(n); printf("%d\n", triples(n)); }
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 | #include <cstdio> using namespace std; #define INT(x) int x; scanf("%d", &x) int pairs(int n) { int r = 0; for (int d = 2; d * d <= n; ++d) { if (n % d) continue; if (2 * d < n) ++r; if (d > 2 && d * d < n) ++r; } return r; } int triples(int n) { int r = 0; for (int d = 1; d * d <= n; ++d) { if (n % d) continue; r += pairs(n / d - 1); if (d > 1 && d * d < n) r += pairs(d - 1); } return r; } int main() { INT(n); printf("%d\n", triples(n)); } |