//Marek Kochanowski #include <iostream> #include <cmath> using namespace std; typedef long long ll; typedef long double ld; typedef unsigned long long ull; typedef short int si; int main() { cout.sync_with_stdio(0); ios_base::sync_with_stdio(0); ll K, A, B; //cout << " IN: " << endl; cin >> K >> A >> B; //cout << " OUT: " << endl; ll D1 = A/K, D2 = B/K; //cout << "1:[" << D1 << " " << D2 << "]" << endl; if(D1>D2) swap(D1, D2); //cout << "2:[" << D1 << " " << D2 << "]" << endl; ll cnt = 0; for(ll i = D1; i < D2; i++) { ll left = i*K; if(left < A || left > B) continue; //cout << left; string leftString = to_string(left); //cout << " : "; ll tmp = 0; for(ll j = 0; j < leftString.length(); j++) { int tmp2 = (int)leftString[j]-48; //cout << tmp2 << " "; tmp += tmp2*tmp2; } //cout << "[" << i << " = " << tmp << "]"; if(i == tmp) { //cout << " !! "; cnt++; } //cout << endl; } cout << cnt; 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | //Marek Kochanowski #include <iostream> #include <cmath> using namespace std; typedef long long ll; typedef long double ld; typedef unsigned long long ull; typedef short int si; int main() { cout.sync_with_stdio(0); ios_base::sync_with_stdio(0); ll K, A, B; //cout << " IN: " << endl; cin >> K >> A >> B; //cout << " OUT: " << endl; ll D1 = A/K, D2 = B/K; //cout << "1:[" << D1 << " " << D2 << "]" << endl; if(D1>D2) swap(D1, D2); //cout << "2:[" << D1 << " " << D2 << "]" << endl; ll cnt = 0; for(ll i = D1; i < D2; i++) { ll left = i*K; if(left < A || left > B) continue; //cout << left; string leftString = to_string(left); //cout << " : "; ll tmp = 0; for(ll j = 0; j < leftString.length(); j++) { int tmp2 = (int)leftString[j]-48; //cout << tmp2 << " "; tmp += tmp2*tmp2; } //cout << "[" << i << " = " << tmp << "]"; if(i == tmp) { //cout << " !! "; cnt++; } //cout << endl; } cout << cnt; return 0; } |