@Tlusty

Можете помочь решить небольшую задачу на С++?

Само задание:
Описать функцию bool IsCorrect(int n1, int n2) для
определения, является ли введенный пользователем интервал
корректным. Описать функцию bool IsSimple(int n) для определения,
является ли число простым. Описать функцию bool DigitOdd(int n)
для определения, являются ли все цифры в числе нечетными. Решить
задачу: сколько простых чисел, все цифры которых являются
нечетными цифрами, на интервале [a, b] с использованием
разработанных функций.
Не могу решить задание с функцией bool DigitOdd(int n)

Мой код
#include
#include
#include

using namespace std;

bool IsCorrect(int n1, int n2) {
if (n1 < n2) {
return true;
}
else
return false;
}
bool IsSimple(int n)
{
int i = 2;
while (i * i <= n) {
if (n % i == 0)
return false;
i++;
}
return true;
}
bool DigitOdd(int n) {
int i;
int* Array = new int[n];

for (i = 0; i < n; i++) {
if (Array[i] % 2 == 0) {
return false;
}
else
return true;
}
}
int main()
{
setlocale(LC_ALL, "ru");
int a, b;
cout << "Введите интервал от a до b: " << endl;
cin >> a >> b;

IsCorrect(a, b);
if (IsCorrect(a, b) == true) {
cout << "Введённый интервал корректен" << endl;
}
else {
cout << "Введённый интервал не корректен" << endl;
}

int c;
cout << "Введите любое число: ";
cin >> c;
cout << (IsSimple(c) ? "Ввёденное число является простым" : "Ввёденное число не является простым") << endl;

int i, m;
cout << "Введите любое число: ";
cin >> m;
int* Array = new int[m];
if (DigitOdd(Array[i]) == false)
cout << "Не все цифры являются нечётными" << endl;
else
cout << "Каждая цифра в числе является нечётной" << endl;
return(0);
system("pause");
}
  • Вопрос задан
  • 611 просмотров
Решения вопроса 1
edward_freedom
@edward_freedom
bool DigitOdd(int number) {
	auto result = true;
	while (number > 0)
	{
		int digit = number % 10;
		number /= 10;
		if (digit % 2 == 0) {
			result = false;
			break;
		}
	}
	return result;
}


Не вырабатывай у себя привычку, переменные одной буквой называть, давай им нормальные имена
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект