#2099(pbinfo)
Fiind dat un numar natural, efectuand suma patratelor cifrelor numarului dat, apoi repetand insumarea patratelor cifrelor pentru numerele obtinute ca rezultat, la un moment dat se obtine una dintre valorile 1 sau 4.
Dat un set de numere naturale, sa se determine pentru fiecare dintre ele, numarul de repetari ale calculului sumei patratelor cifrelor pana la obtinerea rezultatului 1 sau 4.
Răspunsuri la întrebare
Răspuns de
5
#include <iostream>
using namespace std;
int sumpatr (long long n) {
int nr = 0;
long long s;
while( n != 1 && n != 4) {
nr++;
s = 0;
while( n != 0) {
s = s + (n % 10 ) * (n % 10);
n /= 10;
}
n = s;
}
return nr;
}
int main() {
int n;
cin >> n;
for(int i = 0; i < n; i++){
long long val;
cin >> val;
cout << sumpatr(val) << " ";
}
return 0;
}
using namespace std;
int sumpatr (long long n) {
int nr = 0;
long long s;
while( n != 1 && n != 4) {
nr++;
s = 0;
while( n != 0) {
s = s + (n % 10 ) * (n % 10);
n /= 10;
}
n = s;
}
return nr;
}
int main() {
int n;
cin >> n;
for(int i = 0; i < n; i++){
long long val;
cin >> val;
cout << sumpatr(val) << " ";
}
return 0;
}
danamocanu71:
Multumesc frumos
Alte întrebări interesante
Engleza,
8 ani în urmă
Fizică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă