#include <cstdio> #include <cstdlib> #include <vector> #include <map> #include <algorithm> #include <set> #include <time.h> #include <queue> typedef long long int64; using namespace std; int main () { int64 k, a, b; scanf("%lld %lld %lld", &k, &a, &b); int64 min_multiplier = max(a / k, 1LL); int64 max_multiplier = min(b / k, 2000LL); int count = 0; for (int64 m = min_multiplier; m <= max_multiplier; m++) { int64 n = m * k; int64 s = 0; int64 nn = n; while (nn > 0) { int64 c = nn % 10LL; s += c * c; nn /= 10LL; } if (s * k == n) { count++; } } printf("%d\n", count); 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 | #include <cstdio> #include <cstdlib> #include <vector> #include <map> #include <algorithm> #include <set> #include <time.h> #include <queue> typedef long long int64; using namespace std; int main () { int64 k, a, b; scanf("%lld %lld %lld", &k, &a, &b); int64 min_multiplier = max(a / k, 1LL); int64 max_multiplier = min(b / k, 2000LL); int count = 0; for (int64 m = min_multiplier; m <= max_multiplier; m++) { int64 n = m * k; int64 s = 0; int64 nn = n; while (nn > 0) { int64 c = nn % 10LL; s += c * c; nn /= 10LL; } if (s * k == n) { count++; } } printf("%d\n", count); return 0; } |