0 / 0 / 0
Регистрация: 02.11.2016
Сообщений: 2
|
|
1 | |
Определить, есть ли в заданном диапазоне чисел простые числа-близнецы02.11.2016, 23:08. Показов 4207. Ответов 1
Метки нет (Все метки)
Помогите составить программу
Дано натуральное число n. Выяснить, имеются ли среди чисел n, n+1, …, 2n близнецы, т. е. простые числа, разность между которыми равна двум. Определить процедуру, позволяющую распознавать простые числа.
0
|
02.11.2016, 23:08 | |
Ответы с готовыми решениями:
1
Дан отрезок [A, B], где A, B – целые положительные числа. Определить, есть ли на отрезке простые числа, и если есть, то вывести их на экран Найти все простые числа-близнецы Процедуры или функции: Найти все простые числа,лежащие в заданном диапазоне и их сумму Определить есть ли в массиве простые числа |
Модератор
9874 / 5242 / 3306
Регистрация: 17.08.2012
Сообщений: 16,011
|
||||||
06.11.2016, 23:42 | 2 | |||||
Сообщение было отмечено milanwins как решение
Решение
Процедуру? С функцией было бы проще. А ещё проще было бы с функцией, определяющей не простоту числа, а факт того, что два числа являются простыми числами-близнецами. В последнем случае никакие подпрограммы, вообще говоря, не требуются, так как их вызов будет происходить с одними и теми же фактическими параметрами, хотя, в принципе, функция всё же может быть применена с целью декомпозиции алгоритма. Ну да ладно.
Начнём с теории. Любое простое число n, большее 3, может быть представлено либо в виде 6k-1, либо в виде 6k+1, где k - некоторое натуральное число. Абстрагируясь от k, можно сказать, что, если число n простое, то либо n-1, либо n+1 делится нацело на 6. Действительно, если, например, 6k-1=n, то k=(n+1) div 6, а, так как k по определению натуральное, то n+1 делится на 6 нацело. Для 6k+1 та же бадяга. Но не стоит слишком обольщаться, обратное не верно, если выполняются указанные условия насчёт деления без остатка, вовсе не обязательно, что число n будет простым. Например, 25-1 делится нацело на 6, но 25 - составное число. Что интересно, если два числа являются парой простых чисел-близнецов (кроме пары 3, 5), то эта пара может быть опять же представлена в виде 6k±1, где k - некоторое натуральное число. То есть, можно смело проверять не все числа, а только числа, кратные 6 (пусть это будут числа s = 6, 12, 18 и т. д.) и если числа s-1 и s+1 (оба) простые, то они близнецы. Процедура определения простоты числа переделана из функции, взятой отсюда: Алгоритм, который устанавливает – является ли число простым (пост #19). Так как используются только числа вида 6k±1, лишние проверки на делимость на 6 из процедуры убраны. Если эта процедура представляется Вам сложной, найдите на этом форуме одну из +100500 функций определения простоты числа, которая будет видеться Вам не столь запутанной, и переделайте её в процедуру. Вот, правда, что-то не припомню, чтобы видел именно процедуру определения простоты числа, поэтому подозреваю, что найти таковую вряд ли удастся. Программа по заданию, на основе вышеизложенного:
1
|
06.11.2016, 23:42 | |
06.11.2016, 23:42 | |
Помогаю со студенческими работами здесь
2
Определить, есть ли в одномерном массиве простые числа Найти все трехзначные простые числа. Определить функцию, позволяющую распознавать простые числа Есть ли среди данных чисел «близнецы», т.е. простые числа, разность между которыми = 2 Есть ли в последовательности числа-близнецы (использовать процедуру определения простого числа) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |