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

из заданного интервала натуральных чисел определить простые - C++

Войти
Регистрация
Восстановить пароль
 
Achakoo
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 34
13.11.2013, 16:54     из заданного интервала натуральных чисел определить простые #1
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
29
30
{
 setlocale(LC_ALL,"Russian");
 int a,b;
 cout<<"ПРОГРАММА, ОПРЕДЕЛЯЮЩАЯ ВСЕ ПРОСТЫЕ ЧИСЛА ИЗ ИНТЕРВАЛА НАТУРАЛЬНЫХ"<<endl<<endl;
 m: n: cout<<"Введите начало интервала: ";
 cin>>a;
 cout<<"Введите конец интервала: ";
 cin>>b;
 
 cout<<"Простые числа: ";
 for (int i=a;i<=b;i++)
 {
  for(int j=2; j<=i/2+1; j++)
  {
   if (i%j==0&&i!=2) 
   {
    break;
   }
   if(j==i/2+1)
   {
    cout<<i<<", ";
   }
  }
 }
 cout<<"\n"<<"\n";
 goto m;
 system("PAUSE");
 return 0;
 
}
Писал программу , выбирающую из натуральных чисел простые ... с алгоритмом проблема была ... наше в интернете .дописал прогу ...рабочая ... но не могу понять эту строчку if(j==i/2+1) ...зачем надо делить на 2 и прибавлять 1 ???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 16:54     из заданного интервала натуральных чисел определить простые
Посмотрите здесь:

C++ Из заданного интервала натуральных чисел определить все простые числа
C++ Вывести простые числа из заданного интервала
из заданного интервала натуральных чисел определить все простые числа C++
Из заданного интервала натуральных чисел определить все простые числа C++
C++ Из заданного интервала натуральных чисел выбрать все совершенные числа
Найти все пары дружественных натуральных чисел из интервала от N 1 до N 2. C++
C++ Найти такие тройки натуральных чисел x,y,z из интервала от 1 до 20,для которых выполняется равенство x^2-y=z^2
Определить все пары "близнецов" из заданного интервала натуральных чисел C++
C++ Определить все пары "близнецов" из заданного интервала натуральных чисел
Из заданного интервала натуральных чисел выбрать и напечатать все пары дружественных чисел C++
Для введенного натурального числа N (1<=N<106). Определить количество натуральных чисел из интервала от 1 до N C++
Дан файл чисел. Определите длину наибольшего интервала возрастания, и среднее арифм-е чисел этого интервала C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
13.11.2013, 17:03     из заданного интервала натуральных чисел определить простые #2

Не по теме:

Цитата Сообщение от Achakoo Посмотреть сообщение
m: n: cout<<"Введите начало интервала: ";
Воу! что это?



Добавлено через 2 минуты
Цитата Сообщение от Achakoo Посмотреть сообщение
if(j==i/2+1)
это проверили дошли ли мы до конца цикла. То есть, все ли значения были перебраны
Achakoo
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 34
13.11.2013, 17:26  [ТС]     из заданного интервала натуральных чисел определить простые #3
Цитата Сообщение от metaluga145 Посмотреть сообщение

Не по теме:


Воу! что это?



ну да согласен .... n: не нужно

Добавлено через 2 минуты

это проверили дошли ли мы до конца цикла. То есть, все ли значения были перебраны
то есть возьмем мы интервал от 1 до 10 ... конец интервала 10
и как програма проверит что последнее число 10 ... я прогоняю десятку и ересь какая-то получается ... не пойму
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
13.11.2013, 18:50     из заданного интервала натуральных чисел определить простые #4
Цитата Сообщение от Achakoo Посмотреть сообщение
то есть возьмем мы интервал от 1 до 10 ... конец интервала 10
Конец интервала не 10. Там проверяется условие цикла по j. j меняется от 2 до i/2+1(включительно). Если оказалось, что i делится хотя бы на одно число из [2; i/2+1], то цикл заканчивается и это значит, что число не простое. Если же j дошло до максимального значения, то есть до i/2+1, то это означает, что число простое. Но так как переменная j объявлена в цикле, то соответственно за пределами цикла мы ее проверить не можем. Таким образом в цикле j проверяется на окончание цикла не брейком. Надеюсь Вы поняли к чему проверка.

А теперь о том, почему не работает. Если число просто, то оно 100% нечетное( не считая двойки). Если оно нечетное , то число i/2+1 является нецелым, что в свою очередь означает, что j никогда не равно i/2+1, потому что j всегда целое.
Achakoo
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 34
14.11.2013, 08:34  [ТС]     из заданного интервала натуральных чисел определить простые #5
Цитата Сообщение от metaluga145 Посмотреть сообщение
Конец интервала не 10. Там проверяется условие цикла по j. j меняется от 2 до i/2+1(включительно). Если оказалось, что i делится хотя бы на одно число из [2; i/2+1], то цикл заканчивается и это значит, что число не простое. Если же j дошло до максимального значения, то есть до i/2+1, то это означает, что число простое. Но так как переменная j объявлена в цикле, то соответственно за пределами цикла мы ее проверить не можем. Таким образом в цикле j проверяется на окончание цикла не брейком. Надеюсь Вы поняли к чему проверка.

А теперь о том, почему не работает. Если число просто, то оно 100% нечетное( не считая двойки). Если оно нечетное , то число i/2+1 является нецелым, что в свою очередь означает, что j никогда не равно i/2+1, потому что j всегда целое.
Все понятно ... спасибо ..выручил )))
Yandex
Объявления
14.11.2013, 08:34     из заданного интервала натуральных чисел определить простые
Ответ Создать тему
Опции темы

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