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

Простые числа, не корректная работа - C++

Восстановить пароль Регистрация
 
VitalikFreeMan
0 / 0 / 0
Регистрация: 07.06.2014
Сообщений: 6
07.06.2014, 04:53     Простые числа, не корректная работа #1
Здравствуйте! Помогите пожалуйста найти ошибку.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
using namespace std;
void main()
{
    for (int i = 2; i < 100; i++)
    {
        for (int j = 2; j < i; j++)
        {
            if (j % 1 == 0 && i%j == 0)
            break;
            else
            cout << i << " ";
            break;
        }
    }
    cout << endl;
}
Результат работы:
3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57
59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2014, 04:53     Простые числа, не корректная работа
Посмотрите здесь:

C++ Простые числа
простые числа C++
C++ Простые числа
Простые числа. C++
C++ Простые числа
C++ Простые числа
Простые числа C++
C++ Простые числа
C++ не корректная работа меню или всей программы
C++ Не корректная работа visual studio 2012 Express
Корректная работа программы с русскими буквами C++
Не корректная работа цикла при вызове функции добавления пользователя C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Renji
1619 / 1067 / 259
Регистрация: 05.06.2014
Сообщений: 3,152
07.06.2014, 05:00     Простые числа, не корректная работа #2
Здравствуйте! Помогите пожалуйста найти ошибку.
Вложенный цикл всегда завершается на двойке, без проверки всех остальных делителей. Алсо, j % 1==0 лишено смысла (любое целое делится на единицу без остатка -> равенство всегда истинно).
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12282 / 6969 / 784
Регистрация: 27.09.2012
Сообщений: 17,282
Записей в блоге: 2
Завершенные тесты: 1
07.06.2014, 05:00     Простые числа, не корректная работа #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
using namespace std;
int main()
{
    for (int i = 2; i < 100; i++)
    {
       bool f = true ;
        for (int j = 2; j < i; j++)
        {
            if (i%j == 0) {
               f = false ;
               break ;
            }
        }
        if  ( f )
         cout << i << " ";
    }
    cout << endl;
}
Yandex
Объявления
07.06.2014, 05:00     Простые числа, не корректная работа
Ответ Создать тему
Опции темы

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