#include
int sd(int v) { return v < 10? v : v % 10 + sd(v / 10); }
int pd(int v) { return v < 10? v : v % 10 * pd(v / 10); }
int main() {
int n;
std::cout << "n? ";
std::cin >> n;
for (int c = 1; c < n; ++c) if ( sd(c) == pd(c) ) std::cout << c << ' ';
return 0;
}
ЗЫ:
> Alexey
> (1..n).each do |i| t = i; m := 1; s := 0; while (i > 0) do begin m := m * (i % 10); s := s + i ; i = i / 10; end; if (s == m) then print "#{ i }\n"; end;
Что-то оно совсем не рабочее с этими ":="
(1...n).each {|c| print "#{c} " if ((a = c.to_s.chars.map(&:to_i)).reduce(:*) == a.reduce(:+)) }
> Schadow
> Прошу прощения забыл язык написать C++
А "пожалуйста" ты не забыл сказать?