/*PA2015 etap0 Równanie*/
#include <iostream>
using namespace std;
const int maksWartFN = 9 * 9 * 18;
const int potegi[10] = {0, 1 * 1, 2 * 2, 3 * 3, 4 * 4, 5 * 5, 6 * 6, 7 * 7, 8 * 8, 9 * 9};
int wyliczFN(long long liczba) {
int wynik = 0;
for(; liczba; liczba /= 10)
wynik += potegi[liczba % 10];
return wynik;
}
int main() {
ios_base::sync_with_stdio(0);
long long k, a, b, n;
int wynik = 0;
cin >> k >> a >> b;
for(int i = 1; i <= maksWartFN; ++i) {
n = k * i;
if(n > b) break;
if(n >= a && wyliczFN(n) == i) ++wynik;
}
cout << wynik;
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 | /*PA2015 etap0 Równanie*/ #include <iostream> using namespace std; const int maksWartFN = 9 * 9 * 18; const int potegi[10] = {0, 1 * 1, 2 * 2, 3 * 3, 4 * 4, 5 * 5, 6 * 6, 7 * 7, 8 * 8, 9 * 9}; int wyliczFN(long long liczba) { int wynik = 0; for(; liczba; liczba /= 10) wynik += potegi[liczba % 10]; return wynik; } int main() { ios_base::sync_with_stdio(0); long long k, a, b, n; int wynik = 0; cin >> k >> a >> b; for(int i = 1; i <= maksWartFN; ++i) { n = k * i; if(n > b) break; if(n >= a && wyliczFN(n) == i) ++wynik; } cout << wynik; return 0; } |
English