#include<cstdio>
int f(long long n)
{
int wynik=0, c;
while(n)
{
c=n%10;
wynik+=c*c;
n/=10;
}
return wynik;
}
int main()
{
//printf("%d", f(999999999999999999));
long long a, b, k, d, n, ile=0, p;
scanf("%lld%lld%lld", &k, &a, &b);
d = a%k;
if(!d) n=a;
else n=a+k-d;
p=1459*k;
while (n<=b&&n<p)
{
if(k*f(n)==n)
{
ile++;
//printf("%lld ", n);
}
n+=k;
}
printf("%lld", ile);
// int i, j;
// for(i=1; i < 500; i++)
// {
// printf("%d: ", i);
// for(j=i; j<1000000; j+=i)
// if (i*f(j)==j)
// printf("%d ", j);
// printf("\n");
// }
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 41 42 43 | #include<cstdio> int f(long long n) { int wynik=0, c; while(n) { c=n%10; wynik+=c*c; n/=10; } return wynik; } int main() { //printf("%d", f(999999999999999999)); long long a, b, k, d, n, ile=0, p; scanf("%lld%lld%lld", &k, &a, &b); d = a%k; if(!d) n=a; else n=a+k-d; p=1459*k; while (n<=b&&n<p) { if(k*f(n)==n) { ile++; //printf("%lld ", n); } n+=k; } printf("%lld", ile); // int i, j; // for(i=1; i < 500; i++) // { // printf("%d: ", i); // for(j=i; j<1000000; j+=i) // if (i*f(j)==j) // printf("%d ", j); // printf("\n"); // } return 0; } |
English