#include <iostream> #include <cstdlib> using namespace std; int suma(int i) { int suma_poteg = 0; do { div_t calkowite = div( i, 10 ); suma_poteg = suma_poteg + calkowite.rem * calkowite.rem; i = calkowite.quot; }while(i > 0); return suma_poteg; } int main() { unsigned long long k=0,a=0,b=0,n=0; do { cout << "Wpisz liczbe naturalna (1 - 1*10^18): "; cin >> k; do { cout << "Wpisz poczatek przedzialu: "; cin >> a; cout << "Wpisz koniec przedzialu: "; cin >> b; }while(a>b); }while( k > 1000000000000000000 || a > 1000000000000000000 || b > 1000000000000000000 || k < 1 || a < 1 || b < 1); int licznik=0; for(int i = a; i <= b; i++) { n = k * suma(i); if(i == n) { licznik += 1; } } cout << "Znaleziono " << licznik << " liczby" << endl; 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 | #include <iostream> #include <cstdlib> using namespace std; int suma(int i) { int suma_poteg = 0; do { div_t calkowite = div( i, 10 ); suma_poteg = suma_poteg + calkowite.rem * calkowite.rem; i = calkowite.quot; }while(i > 0); return suma_poteg; } int main() { unsigned long long k=0,a=0,b=0,n=0; do { cout << "Wpisz liczbe naturalna (1 - 1*10^18): "; cin >> k; do { cout << "Wpisz poczatek przedzialu: "; cin >> a; cout << "Wpisz koniec przedzialu: "; cin >> b; }while(a>b); }while( k > 1000000000000000000 || a > 1000000000000000000 || b > 1000000000000000000 || k < 1 || a < 1 || b < 1); int licznik=0; for(int i = a; i <= b; i++) { n = k * suma(i); if(i == n) { licznik += 1; } } cout << "Znaleziono " << licznik << " liczby" << endl; return 0; } |