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

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

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

что здесь не так? (из промежутка [n; m] вывести число, которое имеет наибольшее делителей) - C++

02.12.2012, 00:02. Просмотров 349. Ответов 1
Метки нет (Все метки)

из промежутка [n; m] вывести число, которое имеет наибольше делителей
код:
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
# include <iostream>
# include <conio.h>
using namespace std;
void f (int, int, int);
void main () {
 int m, n, k=0;
 cout<<"m"; cin>>m;
 cout<<"n"; cin>>n;
 f (m, n, k);
 getch();
}
void f (int m, int n, int k) {
 int d1=1;
 while(d1<=m){
  if (m%d1==0) k++;
  d1++;
 }
 for (int i=m+1; i<=n; i++) {
  int d2=1, k1=0;
  while (d2<=i){
   if (m%d2==0) k1++;
   d2++;
  }
  if (k1>=k) k=k1;
 }
 cout<<k;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 00:02     что здесь не так? (из промежутка [n; m] вывести число, которое имеет наибольшее делителей)
Посмотрите здесь:

Сколько разных чисел имеет наибольшее натуральное число? C++
C++ Как записать число которое имеет 22 цифр
C++ Что здесь не так
Что здесь не так? C++
C++ Поиск: Определить, сколько делителей и какие имеет данное натуральное число
C++ Кто знает что здесь не так
Найти все натуральные числа из промежутка от k до l, у которых количество делителей превышает заданное число m C++
Вывести минимальное нечетное число. Что не так? C++
Что здесь не так? C++
C++ Найти на отрезке [m, n] натуральное число, имеющее наибольшее количество делителей
Составить наибольшее число, которое делится на 3 C++
Составить из заданного числа наибольшее число, которое делится на 10 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
02.12.2012, 10:39     что здесь не так? (из промежутка [n; m] вывести число, которое имеет наибольшее делителей) #2
см комментарии:
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
# include <iostream>
# include <conio.h>
using namespace std;
void f (int, int, int);
void main () {
 int m, n, k=0;
 cout<<"m"; cin>>m;
 cout<<"n"; cin>>n;
 f (m, n, k);
 getch();
}
void f (int m, int n, int k) {
 int d1=1;
 while(d1<=m){
  if (m%d1==0) k++;
  d1++;
 }
 for (int i=m+1; i<=n; i++) {
  int d2=1, k1=0;
  while (d2<=i){
   if (m%d2==0) k1++;// вот в этой строчке нужно такое условие i%d2==0
   d2++;
  }
  if (k1>=k) k=k1;
 }
 cout<<k;
}
Но даже в этом случае выводится на экран не само число, которое имеет наибольшее делителей, а количество его делителей.
Yandex
Объявления
02.12.2012, 10:39     что здесь не так? (из промежутка [n; m] вывести число, которое имеет наибольшее делителей)
Ответ Создать тему
Опции темы

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