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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Almat29
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 26
#1

Вывод второго самого большого множителя числа N - C++

23.01.2014, 09:05. Просмотров 374. Ответов 7
Метки нет (Все метки)

Доброго времени суток.
Задание в том что, надо вывести второй самый большой множитель числа N.
Например если я ввожу 48, то ответ должен быть 16 - это второй самый большой множитель ( первый самый большой: 24). Если ввожу 9, то ответ 1 - это второй самый большой множитель ( первый самый большой: 3). Если ввожу 5, то ответ 1, т.к. 5 это просто число( делится только на себя и на 1).

Есть начало, но не знаю как добить код до конца. При вводе числа 48, вывод числа 1, 2, 3, 4, 6, 8, 12, 16, 24, 0. Нужно убрать ноль в конце и вывести 16.
C++
1
2
3
4
5
6
7
int second_largest_factor (int n)
{
    for (int i = 1;i < n;i++)
        if(n % i == 0)
            cout << i << " ";
    return 0;
}
Кто может, помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2014, 09:05     Вывод второго самого большого множителя числа N
Посмотрите здесь:

C++ В массиве найти количество нечетных чисел расположенных после второго самого большого числа
В массиве найти количество нечетных чисел расположенных после второго самого большего числа C++
В строке определить подстроку, являющуюся десятичной записью самого большого числа C++
Даны площади 5 кругов. Найти радиус самого большого из них C++
C++ Даны площади нескольких квадратов. Найти диагональ самого большого из них
В заданной строке определить подстроку, являющуюся десятичной записью самого большого целого числа C++
Программа по выводу самого большого введеного слова C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.01.2014, 11:32     Вывод второго самого большого множителя числа N #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
int second_largest_factor (int n)
{
int t=0;
    for (int i = n/2;i >1;i--){
        if(n % i == 0)
            t++;
        if(t==2)
            cout << i << " ";}
if(t<2)
cout << 1 << " ";
    return 0;
}
Almat29
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 26
24.01.2014, 02:16  [ТС]     Вывод второго самого большого множителя числа N #3
Цитата Сообщение от valeriikozlov Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
int second_largest_factor (int n)
{
int t=0;
    for (int i = n/2;i >1;i--){
        if(n % i == 0)
            t++;
        if(t==2)
            cout << i << " ";}
if(t<2)
cout << 1 << " ";
    return 0;
}
Спасибо, но это не то. Вывод 16 15 14 13 0

Добавлено через 21 минуту
При помощи предыдущего кода получился такои код

C++
1
2
3
4
5
6
7
8
int second_largest_factor(int n)
{
    for (int i = n /2; i >= 1; i--){
        if (n % i == 0)
            cout << i << " ";
    }
    return 0;
}
и такои вывод 24 16 12 8 6 4 3 2 1 0

вопрос в том как можно вытащить от туда 16 ???
gunslinger
случайный прохожий
1109 / 727 / 185
Регистрация: 20.07.2013
Сообщений: 1,994
24.01.2014, 02:30     Вывод второго самого большого множителя числа N #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int second_largest_factor(int n)
{
  int t=0, i;
  for (i=1; i<=n/2; i++)
    if(n%i == 0)
      cout << i << " ";
  for (i=n/2; i>1; i--)
  {
    if(n%i == 0)
      t++;
    if(t==2)
      break;
  }
  if (i==0)
    i++;
  return i;
}
Almat29
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 26
24.01.2014, 03:15  [ТС]     Вывод второго самого большого множителя числа N #5
Народ, совсем рядом! Но кроме 16, остальные ответы не нужны. Должно быть чтобы давал ответ " Ваш второй самый большой множитель 16"
gunslinger
случайный прохожий
1109 / 727 / 185
Регистрация: 20.07.2013
Сообщений: 1,994
24.01.2014, 03:35     Вывод второго самого большого множителя числа N #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int second_largest_factor(int n)
{
  int t=0, i;
  for (i=n/2; i>1; i--)
  {
    if(n%i == 0)
      t++;
    if(t==2)
      break;
  }
  if (i==0)
    i++;
  cout << "Vash samiy bolshoi vtoroi mnozhitel ";
  return i;
}
P.S.: Русские шрифты в консоли
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.01.2014, 05:41     Вывод второго самого большого множителя числа N #7
Цитата Сообщение от Almat29 Посмотреть сообщение
Вывод 16 15 14 13 0
извиняюсь, писал без компилятора под рукой. вот так пробуйте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int second_largest_factor (int n)
{
int t=0;
    for (int i = n/2;i >1;i--){
        if(n % i == 0)
        {
            t++;
        if(t==2)
            cout << i << " ";}}
if(t<2)
cout << 1 << " ";
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2014, 07:14     Вывод второго самого большого множителя числа N
Еще ссылки по теме:

Нахождение самого большого непрерывного участка массива, состоящего из нулей C++
C++ Найти число разложений числа на 2 множителя
Поиск самого большого элемента в векторе C++
C++ Вывод из вектора самого короткого и самого длинного string значения
C++ Вывести квадрат самого большого из заданных чисел в первую строку, а квадрат самого маленького во вторую

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

Или воспользуйтесь поиском по форуму:
Almat29
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 26
24.01.2014, 07:14  [ТС]     Вывод второго самого большого множителя числа N #8
Всем спасибо большое, все работает! Удачи
Yandex
Объявления
24.01.2014, 07:14     Вывод второго самого большого множителя числа N
Ответ Создать тему
Опции темы

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