đề là tìm những số tự mãn có 2 chữ số -> n. VD: 153 là STM vì 153 có 3 chữ số và 153=1^3+5^3+3^3.
370 cx y chang.
#include <iostream>
using namespace std;
int dem(int a) {
int s = 0;
while (a != 0) {
a = a / 10;
s++;
};
return s;
}
int kt(int a) {
int b, y, x, s = 0;
b = a;
y = dem(b);
while (a != 0) {
x = a % 10;
a = a / 10;
s = pow(x, y) + s;
};
if (s == b) {
return 1;
};
};
int main()
{
int n;
cin >> n;
for (int i = 10; i < n; i++) {
if (kt(i) == 1) {
cout << i << " la so tu man." << endl;
};
};
return 0;
}
Vấn đề là nếu nhập n=100000, thì nó cx in ra 10, 100, 1000,100000 và những STM khác. Sai ở đâu???