- Программирование на C, C# и Java
- Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
- Является ли число простым — Проверяем на языке Си
- Простое число — определение
- Функция на Си, проверяющая — является ли число простым
- Проверка натурального числа
- Что такое натуральное число
- Что такое действительное число
- Как проверить натуральное число
- Проверка действительного числа
- Выяснить, будет ли заданное натуральное число простым
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Является ли число простым — Проверяем на языке Си
Напишем на языке Си программу, проверяющую является ли число простым. Для проверки будем использовать простейший алгоритм, основанный непосредственно на определении простого числа.
Простое число — определение
Простое число — это натуральное число (то есть целое и положительное), большее, чем единица, которое делится без остатка только на единицу и само на себя.
Список простых чисел (приведем до ста) начинается так: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97…
Функция на Си, проверяющая — является ли число простым
Напишем на языке Си функцию, которая будет проверять — простое ли число. И возвращать результат проверки в виде логической величины bool: true (да) или false (нет).
Алгоритм проверки числа n на простоту строится на определении термина простого числа.
Во-первых число n должно быть больше 1 (проверяем это в строке 5 с помощью условного оператора if), а во-вторых проверяемое число должно иметь только два делителя: 1 и n (проверяем это в строках 8-10 с помощью цикла for и оператора if).
Для работы данного метода требуется подключить заголовочный файл stdbool.h в начале файла с исходным кодом. В stdbool.h содержится определение логических констант true и false, поскольку в чистой версии языка Си они отсутствуют.
Для подключения используем директиву include:
Проверка натурального числа
Задача 1.1
Дано число Х. Если оно натуральное, то вывести на экран сообщение: “Х — натуральное число”, иначе — вывести сообщение “Х — действительное число”.
Прежде чем начать решать эту задачу, давайте вспомним, что такое натуральные и действительные числа.
Что такое натуральное число
Натуральные числа (от лат. naturalis — естественный; естественные числа) — это числа, возникающие естественным образом при счёте (например, 1, 2, 3). Последовательность всех натуральных чисел, расположенных в порядке возрастания, называется натуральным рядом.
Существуют два подхода к определению натуральных чисел:
- Натуральные числа — это числа, возникающие при подсчёте (нумерации) предметов (первый, второй, третий и т.д.).
- Натуральные числа — это числа, возникающие при обозначении количества предметов (нет предметов, один предмет, два предмета и т.д).
В первом случае ряд натуральных чисел начинается с единицы, а во втором — с нуля.
Отрицательные и нецелые (рациональные, вещественные, …) числа к натуральным не относятся.
Что такое действительное число
Вещественное, или действительное число (от лат. realis — действительный) — это математический объект, возникший из потребности измерения геометрических и физических величин окружающего мира, а также проведения таких вычислительных операций, как извлечение корня, вычисление логарифмов, решение алгебраических уравнений, исследование поведения функций.
Если натуральные числа возникли в процессе счёта, а рациональные — из потребности оперировать частями целого, то вещественные числа предназначены для измерения непрерывных величин.
Не будем углубляться в теорию. Попробуем подвести итог простыми словами. Итак,
Натуральное число — это целое положительное число.
Вещественное (действительное) число — это не целое число (число с дробной частью).
Теперь попробуем найти решение задачи. Вариантов может быть несколько. Мы попробуем два из них — проверку натурального числа и проверку действительного числа. Они мало чем отличаются, но всё же.
Чтобы как-то отличить их, оформим их в виде функций.
Как проверить натуральное число
Можно выбрать, например, такой алгоритм:
- Получить число Х
- Проверить, не является ли число отрицательным
- Если да, то вывести “Х — действительное число”
- Если нет, то
- Выделить дробную часть числа
- Если она равна нулю, то вывести “Х — натуральное число”
- Иначе вывести “Х — действительное число”
- Завершить программу
Поскольку мы решили оформить решения в виде функций, то проверка натурального числа поместится в одну строку исходного кода.
Проверка действительного числа
Как я уже говорил, такая проверка мало чем отличается от предыдущей и также помещается в одну строку исходного кода:
Ниже приведены примеры программ на языках Паскаль и С++.
program natural; var X : Single; N : Single; //**************************************************************** // Проверяет, является ли число натуральным. // ВХОД: проверяемое число // ВЫХОД: TRUE - число является натуральным, FALSE - не является //**************************************************************** function NumIsNatural(N : Single) : boolean; begin Result := (N >= 0) and (Frac(N) = 0); end; //**************************************************************** // Проверяет, является ли число действительным (вещественным). // ВХОД: проверяемое число // ВЫХОД: TRUE - число является действительным, // FALSE - не является //**************************************************************** function NumIsReal(N : Single) : boolean; begin Result := (N < 0) or (Frac(N) >0); end; //**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** begin //Проверка натурального числа Write('X = '); ReadLn(X); if NumIsNatural(X) then WriteLn('X is a natural number') else WriteLn('X is a real number'); //Проверка действительного числа Write('X = '); ReadLn(X); if NumIsReal(X) then WriteLn('X is a real number') else WriteLn('X is a natural number'); ReadLn; end.
#include #include using namespace std; //**************************************************************** // Проверяет, является ли число натуральным. // ВХОД: проверяемое число // ВЫХОД: TRUE — число является натуральным, FALSE — не является //**************************************************************** bool NumIsNatural(float N) < int a = (int)N; return ((N >= 0) && ((N — a) == 0)); > //**************************************************************** // Проверяет, является ли число действительным (вещественным). // ВХОД: проверяемое число // ВЫХОД: TRUE — число является действительным, // FALSE — не является //**************************************************************** bool NumIsReal(float N) < int a = (int)N; return ((N < 0) || ((N - a) != 0)); >//**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** int main(int argc, char *argv[]) < float X; //Проверка натурального числа cout << "X X is a natural number" << endl; else cout << "X is a real number" << endl; //Проверка действительного числа cout
ВАЖНО!
Из-за особенностей представления вещественных чисел в памяти компьютера эти примеры не будут работать с большими числами. Например, эти функции, скорее всего, определят, что число 567894,01 является натуральным, а число 567894,1 — действительным. Числа с меньшими значениями будут определяться более точно. Например, число 1,0000001 (шесть нулей) определится как вещественное, а число 1,00000001 (семь нулей) определится как натуральное.
Можно, конечно, постараться и сделать работу этих функций более точной. Но это уже будет более сложное решение.
Выяснить, будет ли заданное натуральное число простым
Определить, является ли заданное натуральное число простым
Определить, является ли заданное натуральное число простым. Циклический алгоритм. Блок схема.
Определить, является ли заданное натуральное число простым
Определить, является ли заданное натуральное число простым
Проверить, является ли заданное натуральное число простым
у меня есть алгоритм вывода простых чисел, как зделать так штоб можна было ввести число и выдать.
Определить, является ли заданное натуральное число простым
Определить, является ли заданное натуральное число простым. Выходные данные: Вывести YES или NO.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#include using namespace std; int summa(int A[10]); int main() { setlocale(LC_ALL, ("Russian")); int a; cout "Введите число a: "; do { cin >> a; cout "Число a является простым\n"; break; } while (a % 2 >= 1); system("pause"); return 0; }
Button, посмотрите все ссылки внизу страницы на Вашу тему.
Njkzy,
1. У Вас все числа простые.
2. Какое отношение к задаче имеет строка int summa(int A[10]);?
3. a%2>=1 — это что за условие?
4. break у Вас выполнится при первом проходе цикла. Зачем он тогда нужен?
Сообщение от zss
Из другой задачи осталось) Не заметил.
Добавлено через 45 секунд
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#include using namespace std; int main() { setlocale(LC_ALL, ("Russian")); int a; char b='n'; while (b=='n') { cout "Введите число a: "; cin >> a; if (a % 2 >= 1) cout "Число a является простым\n"; else cout "Число a является составным\n"; cout "\n\nВыйти из программы? Y/N. \n"; cin >> b; } system("pause"); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#include using namespace std; int main() { setlocale(LC_ALL, ("Russian")); int a; char b='n'; while (b=='n') { cout "Введите число a: "; cin >> a; if (a % 2 >= 1) cout "Число a является простым\n"; else cout "Число a является составным\n"; cout "\n\nВыйти из программы? Y/N. \n"; cin >> b; } system("pause"); return 0; }
Число 1 является простым
Число 2 является составным
Число 3 является простым
Число 4 является составным
Число 5 является простым
Число 6 является составным
Число 7 является простым
Число 8 является составным
Число 9 является простым
Число 10 является составным
Число 11 является простым
Число 12 является составным
Число 13 является простым
Число 14 является составным
Число 15 является простым
Число 16 является составным
Число 17 является простым
Число 18 является составным
Число 19 является простым
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#include using namespace std; int main() { setlocale(LC_ALL, ("Russian")); int n; //проверяемое число int i; //счетчик циклов int is_prime; //булев флаг //предположим,что число явл.простым,пока не докажем обратное is_prime = true; //считать число с клавиатуры cout "введем число и нажмем ентер"; cin >> n; //проверка числа,выполняя проверку делимости //на все целые числа от 2 до sqrt(n) (корня из п) i = 2; while (i sqrt(static_castdouble>(n))) { //пока значение переменной i if (n%i == 0)//если значение переменной i //случайно делится на n, is_prime = false;//n не является простым числом. i++; //прибавить 1 к значению переменной i. } //напечатать результаты if (is_prime) cout "число простое\n"; else cout "число непростое\n"; system("pause"); return 0; }
Сообщение от Njkzy
введем число и нажмем ентер:
Число -20 число простое
Число -19 число простое
Число -18 число простое
Число -17 число простое
Число -16 число простое
Число -15 число простое
Число -14 число простое
Число -13 число простое
Число -12 число простое
Число -11 число простое
Число -10 число простое
Число -9 число простое
Число -8 число простое
Число -7 число простое
Число -6 число простое
Число -5 число простое
Число -4 число простое
Число -3 число простое
Число -2 число простое
Число -1 число простое
Число 0 число простое
Число 1 число простое
Число 2 число простое
Число 3 число простое
Число 4 число непростое
Число 5 число непростое
Число 6 число непростое
Число 7 число непростое
Число 8 число непростое
Число 9 число непростое
Число 10 число непростое
Число 11 число непростое
Число 12 число непростое
Число 13 число непростое
Число 14 число непростое
Число 15 число непростое
Число 16 число непростое
Число 17 число непростое
Число 18 число непростое
Число 19 число непростое
Число 20 число непростое