#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned long long int k,a,b;
unsigned long long int qua = 0;
scanf("%llu %llu %llu", &k, &a, &b);
//k = 51; a = 5000; b = 10000;
//k = 1; a = 1; b = 1000000000000000000;
//k = 1000000000000000000; a = 1; b = 1000000000000000000;
//k = 51; a = 5000; b = 10000;
unsigned long long int n, n_temp, sum, dig;
if(k > 1)
{
a = a - (a % k) + k;
}
//for(n = (a-a%k+k); n <= b && n <= k * 81 * (log10(n) + 1); n+=k)
for(n = a; n <= b && n <= k * 81 * (log10(n) + 1); n += k)
{
n_temp = n;
sum = 0;
while(n_temp && (k * sum <= n))
//while(n_temp)
{
dig = n_temp % 10;
sum += (dig * dig);
n_temp /= 10;
}
//printf("%llu \t %llu\n", n, sum);
if( n % sum == 0 )
{
//printf("%llu \t %llu \t %llu \n", n, sum, n/sum);
}
if( k * sum == n )
{
qua += 1;
//printf("%llu \t %llu\n", n, sum);
}
}
printf("%llu", qua);
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 44 45 46 47 48 49 50 51 52 | #include <stdio.h> #include <stdlib.h> int main() { unsigned long long int k,a,b; unsigned long long int qua = 0; scanf("%llu %llu %llu", &k, &a, &b); //k = 51; a = 5000; b = 10000; //k = 1; a = 1; b = 1000000000000000000; //k = 1000000000000000000; a = 1; b = 1000000000000000000; //k = 51; a = 5000; b = 10000; unsigned long long int n, n_temp, sum, dig; if(k > 1) { a = a - (a % k) + k; } //for(n = (a-a%k+k); n <= b && n <= k * 81 * (log10(n) + 1); n+=k) for(n = a; n <= b && n <= k * 81 * (log10(n) + 1); n += k) { n_temp = n; sum = 0; while(n_temp && (k * sum <= n)) //while(n_temp) { dig = n_temp % 10; sum += (dig * dig); n_temp /= 10; } //printf("%llu \t %llu\n", n, sum); if( n % sum == 0 ) { //printf("%llu \t %llu \t %llu \n", n, sum, n/sum); } if( k * sum == n ) { qua += 1; //printf("%llu \t %llu\n", n, sum); } } printf("%llu", qua); return 0; } |
English