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

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

Восстановить пароль Регистрация
 
desperateX
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 15
02.12.2012, 00:02     что здесь не так? (из промежутка [n; m] вывести число, которое имеет наибольшее делителей) #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++ Как записать число которое имеет 22 цифр
C++ Что здесь не так
Что здесь не так? C++
C++ Поиск: Определить, сколько делителей и какие имеет данное натуральное число
Найти все натуральные числа из промежутка от k до l, у которых количество делителей превышает заданное число m C++
Вывести минимальное нечетное число. Что не так? C++
Что здесь не так? C++
C++ Найти на отрезке [m, n] натуральное число, имеющее наибольшее количество делителей

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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] вывести число, которое имеет наибольшее делителей)
Ответ Создать тему
Опции темы

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