#include <stdio.h> int pow1[10]; int calc_fn(unsigned long long n, unsigned long long t) { unsigned long long sum = 0, tmp; while(n) { tmp = n % 10; sum += pow1[tmp]; n /= 10; } if (sum == t) return 1; return 0; } int main () { unsigned long long k, a, b, n, ret = 0, t; int i; for (i = 0; i < 10; i++) pow1[i] = (i * i); scanf("%llu %llu %llu\n", &k, &a, &b); for (n = a; n <= b; n++) { t = n % k; if (!t) { if (calc_fn(n, n / k)) ret++; } } printf("%llu\n", ret); 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 | #include <stdio.h> int pow1[10]; int calc_fn(unsigned long long n, unsigned long long t) { unsigned long long sum = 0, tmp; while(n) { tmp = n % 10; sum += pow1[tmp]; n /= 10; } if (sum == t) return 1; return 0; } int main () { unsigned long long k, a, b, n, ret = 0, t; int i; for (i = 0; i < 10; i++) pow1[i] = (i * i); scanf("%llu %llu %llu\n", &k, &a, &b); for (n = a; n <= b; n++) { t = n % k; if (!t) { if (calc_fn(n, n / k)) ret++; } } printf("%llu\n", ret); return 0; } |