Само объяснение очень большое. Делится им смысла не вижу. В целом все сводится к проверке числа на простоту. Причем надо это сделать с быстрого алгоритма.
Следующее решение приведено на языке Python 3.4.3:
# is_prime() - функция проверки числа на простоту.
#include <iostream>
long prodDigitExcept_2_9(int N) {
long prod = 1;
bool haveNeedDigit = false;
while (N > 0) {
int temp = N % 10;
if (temp != 2 and temp != 9) {
prod *= temp;
haveNeedDigit = true;
}
N /= 10;
}
if (haveNeedDigit)
return prod;
return -1;
}
long prodDigit(int N) {
long prod = 1;
while (N > 0) {
prod *= N % 10;
N /= 10;
}
return prod;
}
signed main() {
setlocale(LC_ALL, "Rus");
int N;
std::cin >> N;
long result = prodDigit(N);
if (result == -1)
std::cout << "В данном числе нет подходящих цифр!";
else
std::cout << result;
return 0;
}
Само объяснение очень большое. Делится им смысла не вижу. В целом все сводится к проверке числа на простоту. Причем надо это сделать с быстрого алгоритма.
Следующее решение приведено на языке Python 3.4.3:
# is_prime() - функция проверки числа на простоту.
def is_prime( num ):
d = 2
while d * d <= num and num % d != 0:
d += 1
return d * d > num
# получаем число с консоли
N = int( input() )
# проверяем и выводим нужный ответ
if is_prime( N ):
print( 'Danger' )
else:
print( 'Safe' )