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; } |
English