#include <iostream>
#include <cmath>
using namespace std;
void isArmstrong(const int number)
{
int origNum, num, rem, sum = 0;
origNum = number;
num = origNum;
while(num != 0) {
rem = num % 10;
sum += pow(rem, 3);
num /= 10;
}
if(sum == origNum)
cout << origNum << " is an Armstrong number.";
else
cout << origNum << " is not an Armstrong number.";
}
int main()
{
isArmstrong(153);
return 0;
}
_________________________
С проверкой https://ideone.com/keY6PS
Ответ:
8
Объяснение:
Крч смотри, у тебя получается в итоге 2211.
Цикл выполняется, пока у тебя есть хотя бы 3 единицы. 3 единицы ты замечаешь на 2, так как в начале у тебя 2 двойки, то ты делаешь обратную подстановку. 2=111, 22=111111. Там еще есть 2 единицы. 6+2=8.
Проверяем.
На входе число 11111111. Видим 3 единицы и меняем их на 2
211111
Видим след 3 единицы, меняем
2211
Больше 3 единицы не нашлось, значит это финальный ответ
program prim;
uses crt;
var
a,b,r: integer;
begin
clrscr;
writeln ('ввести два числа');
readln (a,b);
if a>b then
begin
r:=a-b;
end
else
begin
r:=b-a;
end;
writeln ('r=', r:5);
readkey;
end.
Запишем уравнение в системе счисления по основанию n:
34(n)+33(n)=100(n)
Представим каждое число в развернутом виде:
3*n+4+3*n+3=1*n²+0*n+0;
Решаем в десятичной системе счисления
3n+4+3n+3=n²; n²-6n-7=0
D=36+28=64; n1=(6-8)/2=-1 (не подходит, основание - натуральное число);
n2=(6+8)/2=7;
<em>Ответ:</em> основание системы счисления равно 7.