#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; } |
English