#include <iostream> using namespace std; int main() { unsigned long long int k, a, b; unsigned long long int tab[10] = {0,1,4,9,16,25,36,49,64,81}; cin>>k>>a>>b; unsigned long long int q; if(k < 100000000000000) { q = k * 1458; if(q<b) b=q; } unsigned long long int pocz = a - (a % k); if(pocz < a) pocz += k; unsigned long long int wynik=0, ile, num, x; for(unsigned long long int i=pocz; i<=b; i+=k) { num = i; ile = 0; while(num > 0) { x = num % 10; ile += tab[x]; num /= 10; } if(ile == i/k) wynik++; } cout<<wynik<<endl; 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 | #include <iostream> using namespace std; int main() { unsigned long long int k, a, b; unsigned long long int tab[10] = {0,1,4,9,16,25,36,49,64,81}; cin>>k>>a>>b; unsigned long long int q; if(k < 100000000000000) { q = k * 1458; if(q<b) b=q; } unsigned long long int pocz = a - (a % k); if(pocz < a) pocz += k; unsigned long long int wynik=0, ile, num, x; for(unsigned long long int i=pocz; i<=b; i+=k) { num = i; ile = 0; while(num > 0) { x = num % 10; ile += tab[x]; num /= 10; } if(ile == i/k) wynik++; } cout<<wynik<<endl; return 0; } |