Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
 Аватар для kava13
0 / 0 / 0
Регистрация: 12.10.2016
Сообщений: 78
1

Найти все пары простых чисел, разность между которыми равна 4

31.05.2018, 18:56. Показов 3312. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано натуральное число n>13. Найти все пары простых чисел, разность между
которыми равна 4 Каждое из чисел найденной пары меньше n. Мой код работает не совсем правильно, например, выводит то, что делится на 5. Как исправить?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main() {
    int n, i;
    cout << "Enter n";
    cin >> n;
    while (n <= 13)
    {
        cout << "Error";
        cin >> n;
    }
    for (i = 2; i<n - 4; i++)
        if ((i % 2 != 0 && i % 3 != 0) || i == 2 || i == 3)
            if ((i + 4) % 2 != 0 && (i + 4) % 3 != 0)
                cout << i << "  " << i+4 << endl;
    _getch();
    return 0;
}
Добавлено через 6 минут
Только что понял, что тут много чего не учтено. Нужно реализовывать иначе. Если кто-то напишет код буду благодарен
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2018, 18:56
Ответы с готовыми решениями:

Выдать пары простых чисел, разность между которыми равна 4, а сами числа меньше n
Дано натуральное число n&gt;13. Выдать пары простых чисел, разность между которыми равна 4, а сами...

Между n и 2n найти все пары простых чисел, разница которых равна 2
Нужна написать программу на с++ для решение задачи. Между n и 2n найти все пары простых чисел,...

Найти в массиве пары чисел, разность между которыми минимальна
Дан двум. массив целых чисел(10х10). Найти в этом массиве пары чисел, разница между которыми...

Выяснить, имеются ли среди чисел n, n+1, ..., 2n близнецы, т.е. простые числа, разность между которыми равна двум.
Помогите, пожалуйста, решить задачу: дано натуральное число n. Выяснить, имеются ли среди чисел...

14
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.06.2018, 09:22 2
Сначала найди простые числа, а после проверяй.
https://ru.wikibooks.org/wiki/... 0%BD%D0%B0
0
 Аватар для kava13
0 / 0 / 0
Регистрация: 12.10.2016
Сообщений: 78
01.06.2018, 09:37  [ТС] 3
Можете, пожалуйста, убрать здесь лишнее (если есть таковое) и написать проверку на то, чтобы разница между числами была -4?

C++
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
#include <iostream>
#include<cmath>
#include <conio.h>
 
using namespace std;
 
int main()
{
    int n;
    cout << "Enter natural n - the upper limit of the range [1..n]";
    cin >> n;
    bool prime[1000];
    for (int i = 0; i <= n; i++)//заполняем массив Prime единицами
        prime[i] = true;//изначально считаем все чила простыми
    prime[0] = prime[1] = 0;//0 И 1 не являются простыми
    for (int i = 2; i <= n; ++i)//перебираем все чила от 2 до n
        if (prime[i] == 1)//если мы встретили простое число, вычеркиваем каждое iое начиная с i^2
            if (i * 1ll * i <= n) //1ll - константа единица типа long long i^2 * 1 = i^2
                for (int j = i*i; j <= n; j += i)//Начинаем с i^2
                    prime[j] = false;//непосредственно вычеркивание
 
    for (int i = 2; i <= n; i++)//выводим ответ
        if (prime[i] == 1) {
            cout << i << endl;
        }
    _getch();
    return 0;
}
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.06.2018, 10:12 4
Во-первых, неправильно. Где vector? Если меняешь, надо делать это грамотно. Оставь как там было.
А после нахождения чисел, надо искать пары.
0
 Аватар для kava13
0 / 0 / 0
Регистрация: 12.10.2016
Сообщений: 78
01.06.2018, 10:16  [ТС] 5
Мне нужно без использования вектор реализовать, и вообще, вроде верно. А все проверки у меня заканчиваются проблемами, выводит что-то непонятное. Мне бы просто чтобы вы код дописали
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.06.2018, 10:19 6
Сначала запиши найденные числа в массив, сами значения. И по нему уже ищи.
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
01.06.2018, 11:46 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool isPrim(int k)
{   int i;
   for(i=3; i*i <= k; i+=2)
     if (k%i==0) return false;
   return true;
}
int main()
{  int n;
  cin >> n;
  for(int k=3; k+4 <= n; k+=2)
     if (isPrim(k) && isPrim(k+4))
       cout << k << " " << k+4 << endl;
}
У кода есть недостаток. Некоторые числа проверябтся на простоту дважды. Этот недостаток при желании можно устранить. Зато не нужно ни массивов, ни векторов.
0
 Аватар для kava13
0 / 0 / 0
Регистрация: 12.10.2016
Сообщений: 78
03.06.2018, 10:46  [ТС] 8
Подскажите, как мне правильно вставить ваш код в свой? Мой есть выше. И если есть возможность, то устраните, пожалуйста, недостаток этот) Заранее огромное спасибо

Добавлено через 3 минуты
И если все-таки сможете, мне бы лучше с массивом это сделать...
0
Модератор
Эксперт по электронике
8954 / 6720 / 921
Регистрация: 14.02.2011
Сообщений: 23,717
03.06.2018, 11:03 9
Цитата Сообщение от Байт Посмотреть сообщение
bool isPrim(int k)
чей то ты слишком упростил
например числа 0 и 1 простые
а так же и 4 и 6 и 8
Цитата Сообщение от Байт Посмотреть сообщение
for(i=3; i*i <= k; i+=2)
3*3<= 4 ЛОЖЬ
3*3<= 6 ЛОЖЬ
3*3<= 8 ЛОЖЬ
в цикл не входим, возвращается true
0
 Аватар для kava13
0 / 0 / 0
Регистрация: 12.10.2016
Сообщений: 78
03.06.2018, 13:54  [ТС] 10
Вы бы могли помочь мне занести результаты в массив, а там уже вывести только те, разница между которыми 4?

Добавлено через 2 часа 48 минут
ValeryS, пожалуйста, помогите
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
03.06.2018, 16:42 11
Цитата Сообщение от ValeryS Посмотреть сообщение
чей то ты слишком упростил
Виноватая я!
0, 1 - мне плевать. Проверка начинается с k=3
Но вот то, что четные не отбраковываю, да, моя вина. Хотя не столь уж большая. Внешний цикл идет только по нечетным. Так что код работать будет!
0
 Аватар для kava13
0 / 0 / 0
Регистрация: 12.10.2016
Сообщений: 78
03.06.2018, 16:46  [ТС] 12
Прошу вас, помогите мне написать кусочек кода. Я не могу вывести нужные мне простые числа. У вас это займет не более 3 минут.
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
03.06.2018, 16:55 13
Код я составил. Но в наказание за нарушение правила 4.6 - удалил. Чтоб неповадно было в личку всякую ерунду писать!
1
 Аватар для kava13
0 / 0 / 0
Регистрация: 12.10.2016
Сообщений: 78
03.06.2018, 17:12  [ТС] 14
Огромное вам спасибо!

Добавлено через 16 минут
Извините, я не знал об этом правиле, а помощь так никто и не собирался оказывать. Еще раз спасибо
0
ValeryS
03.06.2018, 17:19     Найти все пары простых чисел, разность между которыми равна 4
  #15

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
0, 1 - мне плевать. Проверка начинается с k=3
навеяло
"Оставим его в тылу. Не люблю я ничего оставлять в тылу, неприятно это, как дырявый зуб..."
(с) Стругацкие "За миллиард лет до конца света"

0
03.06.2018, 17:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.06.2018, 17:19
Помогаю со студенческими работами здесь

Проверка существования «близнецов», т.е. простых чисел, разность между которыми равна 2
Решить задачу с использованием процедур с входными и выходными параметрами или функций. Написать...

В интервале от 1 до 1000 найти все простые числа, разность между которыми равна 2
В интервале от 1 до 1000 найти все парные простые числа (парными простыми числами называются два...

Найти все пары простых чисел, сумма которых равна 2x
Вариант №12 Ввести натуральное число x. Найти все пары простых чисел, сумма которых равна 2x.

Найти все пары взаимно простых чисел, сумма которых равна x
Вариант №11 Ввести натуральное число x. Найти все пары взаимно простых чисел, сумма которых равна...

Имеются ли среди чисел n+1,...,2n простые числа, разность между которыми равна двум
Дано число n&lt;= 15. Выяснить, имеются ли среди чисел n+1,...,2n простые числа, разность между...

Выясните, имеются ли среди чисел от A до 2 x A близнецы, т. е. простые числа, разность между которыми равна двум
Пользователь вводит натуральное число A. Выясните, имеются ли среди чисел от A до 2 x A близнецы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru