Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
orakul77
-11 / 1 / 0
Регистрация: 21.11.2012
Сообщений: 214
1

Найти НОК (наименьшее общее кратное) чисел N и M

28.01.2015, 13:49. Просмотров 1446. Ответов 12
Метки нет (Все метки)

Задание : Найти НОК (наименьшее общее кратное) чисел N и M , числа должен вводить пользователь и нельзя делить на 0 и на негативные числа .
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2015, 13:49
Ответы с готовыми решениями:

Найти НОК (наименьшее общее кратное) чисел a и b
Помогите пожалуйста решить задачу. Найти НОК (наименьшее общее кратное) чисел a...

Найти наименьшее общее кратное всех чисел, введенных с клавиатуры
Всем привет, вообщем мне нужно с помощью функции поиска НОК(Наименьшее общее...

Найти наименьшее общее кратное набора из N целых чисел, лежащих в диапазоне от 1 до 1000
Найти наименьшее общее кратное набора из N целых чисел, лежащих в диапазоне от...

Найти наименьшее общее кратное всех элементов в выделенной области матрицы
Доброй ночи. Нужна помощь в реализации матрица, которая имеет фигуру, которая...

Найти наименьшее общее делимое числам, N и M, которые вводит пользователь
Всем доброго время суток , можете пожалуйста помочь с программой - очень нужно...

12
Байт
Эксперт C
20035 / 12657 / 2662
Регистрация: 24.12.2010
Сообщений: 26,352
28.01.2015, 14:38 2
orakul77, посмотри вниз (под быстрым ответом). Там куча задач - один в один твоя. И некоторые с решениями!

Добавлено через 2 минуты
Но если НОД ты уже умеешь находить, то НОК = N*M/НОД
1
Tordek
55 / 49 / 37
Регистрация: 22.01.2015
Сообщений: 176
28.01.2015, 14:51 3
orakul77, а вообще все эти алгоритмы есть в интернете, какая проблема сделать из них программу?
0
castorsky
1973 / 1076 / 87
Регистрация: 29.11.2013
Сообщений: 3,354
29.01.2015, 01:58 4
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
#include <stdio.h>
#include <stdlib.h>
 
#define HELLO_WORLD_FEST_DETECTED 1
 
inline unsigned
gcdCore (unsigned a, unsigned b) {
    return b == 0 ? a : gcdCore(b, a % b);
}
 
inline unsigned
gcd (int a, int b) {
    return gcdCore(a < 0 ? -a : a, b < 0 ? -b : a);
}
 
inline unsigned
lcm(short a, short b) {
    int c = a * b;
    return c < 0 ? -c / gcd(a, b) : c / gcd(a, b);
}
 
int
main (int cgra, char ** vgra)
{
    /* TODO
     press any key to continue */
     
    exit(EXIT_SUCCESS);
}
1
orakul77
-11 / 1 / 0
Регистрация: 21.11.2012
Сообщений: 214
29.01.2015, 11:28  [ТС] 5
Вот готовая программа - спасибо кто готов был помочь = но сейчас появилась такая проблемма .

Надо чтоб он находил НОК не через рекурсию как тут , а просто используя цикл = может кто помочь с этими ? Пожалуйста ......

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#pragma hdrstop
#pragma argsused
 
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
 
 
 
int gcd( int a, int b ) {
    return b ? gcd( b, a % b ) : a;
}
 
 
int lcm( int a, int b ){
    return a / gcd( a, b ) * b;
}
int main() {
    int a, b;
     char x; 
     do {
    printf("Vvedite pervoje cislo:");
    scanf("%d", &a);
 
    printf("Vvedite vtoroe cislo:"); 
    scanf("%d", &b);
 
 
      if( a == 0 || b == 0 ){
        printf( "S 0 delit nelza!" );
                                          }
 
 
 
    if (a < 0) { 
        printf("\nVne diapazona");
    }
 
     printf( "Naimensie obsee kratnoe = %d\n", lcm( abs( a ), abs( b ) ) );
 
 
 
     printf("\nEsli hotite povtorit Y\n\nEsli net , lubuju druguju bukvu\n");
 
        flushall();
        scanf(" %c", &x);
 
        clrscr();
    }
    while (x == 'y' || x == 'Y');
 
    getch();
}
0
Kordn
156 / 135 / 106
Регистрация: 18.05.2013
Сообщений: 289
29.01.2015, 12:04 6
C
1
2
3
4
5
6
7
8
int gcd( int a, int b ) {
    while(a!=b) 
{
if (a>b) a-=b;
else b-=a;
}
return a;
}
1
orakul77
-11 / 1 / 0
Регистрация: 21.11.2012
Сообщений: 214
01.02.2015, 23:19  [ТС] 7
Можете пожалуйста совместить это с кодом - а то совмещаю и выдает ошибку .....
0
SkVICh
0 / 0 / 1
Регистрация: 02.02.2015
Сообщений: 3
02.02.2015, 12:16 8
Если правильно понял задание - вот мой вариант
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
#include <stdio.h>
#include <locale.h>
 
int main(void)
{
    int N, M;
    
    setlocale(LC_ALL, "Russian");
    printf("Ââåäèòå Г·ГЁГ±Г«Г* N ГЁ M:\n");
    scanf("%i\n%i", &N, &M);
    
    if(N<=0 || M<=0) { 
     printf("ГЋГёГЁГЎГЄГ*!");
     return 1;
    }
    
    int NOK = 0, 
        count = (N < M) ? M : N;
        
    while (NOK == 0) {
            NOK = ((count%N == 0) && (count%M == 0)) ? count : 0;
            count++;
    }
    
    printf("ГЌ.ГЋ.ГЉ. = %i\n", NOK);
    system("pause");
    return 0;
}
0
Байт
Эксперт C
20035 / 12657 / 2662
Регистрация: 24.12.2010
Сообщений: 26,352
02.02.2015, 12:32 9
Цитата Сообщение от SkVICh Посмотреть сообщение
вот мой вариант
Да, это вычислит НОК. Но из всех возможных способов выбран самый неэффективный.

Добавлено через 2 минуты
Цитата Сообщение от orakul77 Посмотреть сообщение
совместить это с кодом - а то совмещаю и выдает ошибку .....
Покажи свой код.
0
orakul77
-11 / 1 / 0
Регистрация: 21.11.2012
Сообщений: 214
02.02.2015, 15:22  [ТС] 10
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#pragma hdrstop
#pragma argsused
 
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
 
 
 
int gcd( int a, int b ) {
    while(a!=b) 
{
if (a>b) a-=b;
else b-=a;
}
return a;
}
int main() {
    int a, b;
     char x; 
     do {
    printf("Vvedite pervoje cislo:");
    scanf("%d", &a);
 
    printf("Vvedite vtoroe cislo:"); 
    scanf("%d", &b);
 
 
      if( a == 0 || b == 0 ){
        printf( "S 0 delit nelza!" );
                                          }
 
 
 
    if (a < 0) { 
        printf("\nVne diapazona");
    }
 
     printf( "Naimensie obsee kratnoe = %d\n", lcm( abs( a ), abs( b ) ) );
 
 
 
     printf("\nEsli hotite povtorit Y\n\nEsli net , lubuju druguju bukvu\n");
 
        flushall();
        scanf(" %c", &x);
 
        clrscr();
    }
    while (x == 'y' || x == 'Y');
 
    getch();
}
Добавлено через 11 секунд
Ему чтот тут не нравиться
0
Байт
Эксперт C
20035 / 12657 / 2662
Регистрация: 24.12.2010
Сообщений: 26,352
02.02.2015, 16:54 11
Цитата Сообщение от orakul77 Посмотреть сообщение
Ему что-то тут не нравиться
Что? Секрет?
0
orakul77
-11 / 1 / 0
Регистрация: 21.11.2012
Сообщений: 214
02.02.2015, 17:34  [ТС] 12
Вот что пишет программа
0
Миниатюры
Найти НОК (наименьшее общее кратное) чисел N и M  
Байт
Эксперт C
20035 / 12657 / 2662
Регистрация: 24.12.2010
Сообщений: 26,352
02.02.2015, 17:58 13
Лучший ответ Сообщение было отмечено orakul77 как решение

Решение

Цитата Сообщение от orakul77 Посмотреть сообщение
Вот что пишет программа
Синтаксических ошибок я не нашел. Оформление - чудовищное! Но синтаксис в порядке.
В строке 39 - что за lcm? Может быть gcd ?

Добавлено через 6 минут
Более того. После замены lcm на gcd программа работает. И работает правильно!
1
02.02.2015, 17:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2015, 17:58

Для двух натуральных чисел вывести все общие делители, найти НОД и НОК этих чисел
Написать программу, которая для двух натуральных чисел: выводит все общие...

Найти НОК для заданных чисел
При написании использовал итерационный вариант , дальше ввел массив, прошу...

Как в массиве из действительных чисел найти число кратное 5
Дан массив из действительных чисел и нужно найти в этой последовательности член...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru