/*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; } |