Решите задачу на С++
Для скольких из 22-х заданных цифр 2000, 2001, ..., 2021 существует натуральное число, которое имеет произведение цифр, равной соответствующему заданному числу?
#include <iostream>
#include <string>
#include <ctime>
#include <Windows.h>
using namespace std;
int main()
{
unsigned long long int res=1;
unsigned long long int num=6666;
while(true)
{
res = 1;
string th = to_string(num);
for (int j = 0; j < th.length(); ++j)
{
char a[2] = { th[j],'\0' };
res *= atoi(a);
}
for (int i = 2000; i <= 2021; i++)
{
if (res == i)
{
cout << "\a" << res << endl;
//Sleep(999);
}
}
num++;
}
Sleep(9999999);
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
Разложите каждое число, которое проверяете, на простые множители. Если все простые множители меньше десяти - для этого числа существует.
2000 - 2*2*2*2*5*5*5 - существует
2001 - 3*23*29 - не существует