Форум программистов, компьютерный форум CyberForum.ru

Программа не останавливается в нужный момент - C++

Восстановить пароль Регистрация
 
ink-mate
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 30
21.11.2014, 11:01     Программа не останавливается в нужный момент #1
Программа должна выводить близнецов не выше числа n*2, но она это делает.

Вот условие, если кому то нужно: "Дано натуральное число n. Выяснить, имеются ли среди чисел n, n+1,.....,2n близнецы, т.е. простые числа, разность между которыми равна двум.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
bool simple(int n) {
    int t = n>>1;// t = n/2.
    for(int i=2;i<t;i++)
        if( !(n%i) ) return 0;
    return 1;
};
int main() {
    int n;
    int t;
    printf("Vvedite n : " );
    scanf("%d",&n);
    if( !(n%2)) n++; 
    t= n <<1;
    printf("Bliznetsi : \n");
    for(int i=n;i<t;i+=2) 
        if(  (simple(i)) && (simple(i+2)) ) 
            printf("%d %d\n",i,i+2);
    getch();
};
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2014, 11:01     Программа не останавливается в нужный момент
Посмотрите здесь:

C++ Программа останавливается без ошибок на fopen
Файлы. Программа, которая определяет если такой момент, что два раза вошли по одному пропуску или два раза вышли по одному (выводит все время истину) C++
C++ Цикл не останавливается на cin >> n; C++
Почему не останавливается цикл по требованию? C++
Какой момент не учитывает программа? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1855 / 1651 / 574
Регистрация: 14.05.2014
Сообщений: 4,726
Записей в блоге: 1
Завершенные тесты: 5
21.11.2014, 11:08     Программа не останавливается в нужный момент #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ink-mate Посмотреть сообщение
for(int i=n;i<t;i+=2)
for(int i=n;i<t-2;i+=2)

Добавлено через 1 минуту
Цитата Сообщение от ink-mate Посмотреть сообщение
Программа должна выводить
Цитата Сообщение от ink-mate Посмотреть сообщение
но она это делает.
Негодница
ink-mate
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 30
21.11.2014, 11:12  [ТС]     Программа не останавливается в нужный момент #3
@Kerry Jr, не помогло, если ввести 6 выводит 11&13 | 17&19

Добавлено через 2 минуты
работает, спасибо.
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1855 / 1651 / 574
Регистрация: 14.05.2014
Сообщений: 4,726
Записей в блоге: 1
Завершенные тесты: 5
21.11.2014, 11:21     Программа не останавливается в нужный момент #4
ink-mate,
C++
1
if( !(n%2)) n++;
если ввести 6, то n превратится в 7, а 7 * 2 = 14, поэтому 11&13 - это верный вариант. Чтобы такого не было, сначала
C++
1
t = n << 1;
, а затем уже
C++
1
if( !(n%2)) n++;
ink-mate
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 30
21.11.2014, 11:53  [ТС]     Программа не останавливается в нужный момент #5
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
for(int i=n;i<t-2;i+=2)
Может поможешь перевести с паскаля на С++ вот это?
Pascal
1
sqrt(sqr(r+h)-sqr(r)):0:3
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1855 / 1651 / 574
Регистрация: 14.05.2014
Сообщений: 4,726
Записей в блоге: 1
Завершенные тесты: 5
21.11.2014, 12:29     Программа не останавливается в нужный момент #6
С Паскалем не очень дружу, поэтому могу ошибиться
Цитата Сообщение от ink-mate Посмотреть сообщение
Pascal
1
sqrt(sqr(r+h)-sqr(r)):0:3
C++
1
floor(1000 * sqrt((r+h)*(r+h) - r*r))/1000.;
для sqrt и floor нужно подключать <math.h> - для С, <cmath> - для С++.
Yandex
Объявления
21.11.2014, 12:29     Программа не останавливается в нужный момент
Ответ Создать тему
Опции темы

Текущее время: 00:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru