Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8.
Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
#include <cstdio> #include <iostream> using namespace std; int main() { long long k, a, b; cin >> k >> a >> b; int s[18 * 81 + 1]; //s[i] najmniejsza liczba cyfr kt�rych kwadraty sumuj� si� do i int i, c; s[0] = 1; for(i = 1; i <= 18 * 81; ++i) { int m = 99; for(c = 1; c <= 9; ++c) { if(c * c == i) m = 1; else if(i - c * c > 0 && s[i - c * c] + 1 < m) m = s[i - c * c] + 1; } s[i] = m; } int res = 0; for(i = 0; i <= 18 * 81; ++i) if(s[i] <= 18 && i <= b / k + 1 && a <= i * k && i * k <= b) { c = 0; for(long long n = i * k; n > 0; n /= 10) c += (n % 10) * (n % 10); if(c == i) res++; } cout << res << endl; }
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 | #include <cstdio> #include <iostream> using namespace std; int main() { long long k, a, b; cin >> k >> a >> b; int s[18 * 81 + 1]; //s[i] najmniejsza liczba cyfr kt�rych kwadraty sumuj� si� do i int i, c; s[0] = 1; for(i = 1; i <= 18 * 81; ++i) { int m = 99; for(c = 1; c <= 9; ++c) { if(c * c == i) m = 1; else if(i - c * c > 0 && s[i - c * c] + 1 < m) m = s[i - c * c] + 1; } s[i] = m; } int res = 0; for(i = 0; i <= 18 * 81; ++i) if(s[i] <= 18 && i <= b / k + 1 && a <= i * k && i * k <= b) { c = 0; for(long long n = i * k; n > 0; n /= 10) c += (n % 10) * (n % 10); if(c == i) res++; } cout << res << endl; } |