Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2016, 18:55   #1
Александр Старцев
Новичок
Джуниор
 
Регистрация: 20.12.2016
Сообщений: 1
По умолчанию Найти все правильные несократимые дроби, знаменатель которых меньше заданного числа.

Скажите что не правильно в моем коде? И объясните на примере.
Не могу никак добиться того, что бы алгоритм убирал сокращающиеся дроби. Циклы могу использовать while ror, а также оператор if else, bool - не особо понимаю его.
#include <iostream>
using namespace std;
void main() {
setlocale (0,"");
int n;
cout << "Введите число ";
cin >> n;
for (int i = 2; i < n;i++)
{
for (int a = 2; a < i / 2; a++)
{
if (i % a != 0)
for (int j = 1; j < i;j++)
{
for (int b = 2; b < j /2; b++)
{
if (j % b != 0)

cout << j << "/" << i << endl;
}
}
}
}
}
Александр Старцев вне форума Ответить с цитированием
Старый 21.12.2016, 17:26   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
for (int i = 2; i < n;i++)//знаменатель
{
  for (int a = 2; a < i / 2; a++) // а это ГДЕ-нибудь использовано ??? (кроме вычеркнутых строк).
  {
     if (i % a != 0) // из того что просто знаменатель на что-то НЕ делится еще ничего НЕ следует (мы не можем делать никаких выводов)
// более того, нам совсем не хотелось бы несколько раз выводить одни и ТЕ ЖЕ дроби, а ведь придется если у нас останется "вычеркнутый"цикл  
       for (int j = 1; j < i;j++) // числитель
       {
          yes =true;
          for (int b = 2; b < j /2; b++) !!!! 2/4 сократимая, НО ... b<2/2 =1, цикл не сработает и ... мы примем это как "удачу" 
// ИСПРАВЛЕНИЕ оставляю на твое усмотрение.
          {
             if (j % b == 0) & (i % b == 0) //нашли число на которое делится И числитель И знаменатель
               yes =false; // такое нам не нужно
          }
          if (yes) 
            cout << j << "/" << i << endl;
       }
   }
}
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 21.12.2016 в 17:29.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти количество тех элементов массива, значения которых положительны и не превосходят заданного числа А qwot C# (си шарп) 1 08.11.2014 12:36
Найти числа, квадраты которых меньше определенного порога smokimo Помощь студентам 0 05.10.2014 17:24
одномерный массив - найти сумму отрицательных меньше заданного числа и количество положительных больше заданного числа ALEXXELA Паскаль, Turbo Pascal, PascalABC.NET 2 02.12.2012 20:13
Найти номер первой пары соседних элементов с разными знаками, сумма которых меньше заданного числа sofiya Помощь студентам 4 20.02.2011 23:05
сумма всех начальных членов ряда, значение которых не меньше заданного числа e, 0<e<1 Арчи Помощь студентам 2 20.12.2008 12:39