C/C++

Нужно написать программу на языке C++

Программа должна определить количество трехзначных натуральных чисел, делящихся на каждую из своих цифр. При написании программы должен быть использован один из циклов for, do или while.
#include <iostream>

using namespace std;

int main()
{
int q = 0, e,d,s;
for(int x = 100; x < 1000; x++)
{
e = x % 10;
d = (x / 10) % 10;
s = x / 100;
if(e != 0 && d != 0 && s != 0) // чтобы исключить деление на ноль
{
if(x % e == 0 && x % d == 0 && x % s == 0) q++;
}
}
cout << q << endl;
return 0;
}
Сергей Дударев
Сергей Дударев
99 858
Лучший ответ
#include <iostream>
int main() { int i, j, k, l, m = 0; for (i = 100;
i < 1000; i++) { j = i / 100; k = i / 10 % 10;
l = i % 10; if (k * l && (i % j || i % k || i % l) == 0)
m++; } std::cout << m; }

С выдачей таблицы чисел:

#include <iostream>
#include <iomanip>
using namespace std; int main()
{ int i, j, k, l, m = 0, n = 0; for (i = 100; i < 1000;
i++) { j = i / 100; k = i / 10 % 10; l = i % 10;
if (k * l && (i % j || i % k || i % l) == 0) { n++;
cout << setw(4) << i; m++; if (m == 10)
{ m = 0; cout << endl; } } } if (m) cout << endl;
cout << '\n' << n << " numbers" << endl; }