#include <stdio.h> int w[10] = {0,1,4,9,16,25,36,49,64,81}; int main(void) { unsigned long long k,a,b; unsigned long long max = 1458,l,s,x; int i=0; scanf("%llu %llu %llu",&k,&a,&b); if(b/k <= max) { max = b; } else { max *=k; } l = (a%k)?(a/k+1)*k:a; while(l<=max) { //kwadraty x=l; s=0; while(x) { s+=w[x%10]; x/=10; } if(s*k == l)++i; l+=k; } printf("%d\n",i); 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 | #include <stdio.h> int w[10] = {0,1,4,9,16,25,36,49,64,81}; int main(void) { unsigned long long k,a,b; unsigned long long max = 1458,l,s,x; int i=0; scanf("%llu %llu %llu",&k,&a,&b); if(b/k <= max) { max = b; } else { max *=k; } l = (a%k)?(a/k+1)*k:a; while(l<=max) { //kwadraty x=l; s=0; while(x) { s+=w[x%10]; x/=10; } if(s*k == l)++i; l+=k; } printf("%d\n",i); return 0; } |