#include<iostream> using namespace std; int tab[10]={0,1,4,9,16,25,36,49,64,81}; int fn(unsigned long long a) { int b=0; while (a) { b+=tab[a%10]; a/=10; } return b; } int main() { unsigned long long a,b,k,dziel,w; int suma=0; cin >> k >> a >> b; if(a%k==0)dziel=a/k; else dziel=a/k+1; w=dziel*k; while(dziel<=1458 && w<=b) { if(fn(w)==dziel)suma++; w+=k; dziel++; } cout << suma; }
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 | #include<iostream> using namespace std; int tab[10]={0,1,4,9,16,25,36,49,64,81}; int fn(unsigned long long a) { int b=0; while (a) { b+=tab[a%10]; a/=10; } return b; } int main() { unsigned long long a,b,k,dziel,w; int suma=0; cin >> k >> a >> b; if(a%k==0)dziel=a/k; else dziel=a/k+1; w=dziel*k; while(dziel<=1458 && w<=b) { if(fn(w)==dziel)suma++; w+=k; dziel++; } cout << suma; } |