Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/41: Рейтинг темы: голосов - 41, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 12
1

Ввести с консоли n целых чисел и поместить их в массив. На консоль вывести НОД и НОК

29.09.2014, 12:55. Показов 8343. Ответов 5
Метки нет (Все метки)

Ввести с консоли n целых чисел и поместить их в массив. На консоль
вывести Наибольший общий делитель и наименьшее общее кратное этих чисел.

Запуталась с преобразованием типов + получилась очень громоздкая программа. Помогите сделать прогу поменьше.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2014, 12:55
Ответы с готовыми решениями:

Ввести с консоли n целых чисели поместить их в массив. Найти среди них указанные числа и вывести на консоль: Числа, которые делятся на 3 или на 9.
Помогите объяснить. Каждую строку, что делает и для чего нужна. Спасибо. 4_Ввести с...

Ввести с консоли n целых чисел и поместить их в массив
Ввести с консоли n целых чисел и поместить их в массив. На консоль вывести "счастливые" числа. ...

Сервлет: найти НОД и НОК 2 целых чисел
Нужно реализовать 2 jsp файла. 1 у котором будет форма ввода чисел, 2 должно вывести наибольший...

Найти НОД и НОК двух целых чисел
1.1. Циклические программы. Найти наибольший общий делитель и наименьшее общее кратное двух целых...

5
282 / 262 / 173
Регистрация: 27.07.2014
Сообщений: 584
29.09.2014, 18:07 2
Java
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
import java.io.PrintWriter;
import java.util.*;
 
public class Main {
 
  static int n,m,num,nod,nok,P;
 
  public static void main (String[]  args) {
     
      Scanner s= new Scanner(System.in);
 
    n=s.nextInt(); int [] a = new  int [n];
    for(int i=0;i<a.length;i++) {
        a[i]=s.nextInt();
    }
 
    P=1;
  
    for(int i=0;i<a.length;i++) {
        P*=a[i]; // Произведение чисел массива
    }
    
    for(int i=0;i<a.length;i++) { //Нахождение НОД всех чисел массива
                if(i+1<a.length) {
        for(int j=i+1;j<=i+1;j++) {
            nod=gcd(a[i], a[j]);
        }a[i+1]=nod;
        }
    }
 
    nok=P/nod;//Нахождение НОК
    
      System.out.println("НОД "+n+" чисел"+" равен "+nod);
     System.out.println("НОК "+n+" чисел"+" равен "+nok);
 
} 
            static int gcd(int a, int b) { //метод вычисляющий НОД
              if(b==0) return a;
              else return gcd(b,a%b);
          }
  }
1
Эксперт 1С
840 / 604 / 211
Регистрация: 24.07.2013
Сообщений: 2,095
29.09.2014, 22:13 3
Подкорректирую цикл нахождения НОД:
Java
1
2
3
4
nod = a[0];
for (i = 1; i < a.length; i++) {
    nod = gcd(nod, a[i]);
}
1
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 12
03.10.2014, 16:05  [ТС] 4
НОК считает неправильно! P/nod - не формула для НОК.
0
282 / 262 / 173
Регистрация: 27.07.2014
Сообщений: 584
03.10.2014, 18:51 5
Java
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
import java.util.Scanner;
 
public class Main {
 
  static int n,m,num,nod,nok,P;
 
  public static void main (String[]  args) {
     
      Scanner s= new Scanner(System.in);
 
    n=s.nextInt(); int [] a = new  int [n];
    for(int i=0;i<a.length;i++) {
        a[i]=s.nextInt();
    }
 
  P=1;
  
    for(int i=0;i<a.length;i++) { //Нахождение НОД всех чисел массива
        if(i+1<a.length) {
            for(int j=i+1;j<=i+1;j++) {
                nod=gcd(a[i], a[j]);
                P=a[i]*a[j];
                nok=P/nod;
            }a[i+1]=nod;a[i+1]=nok;
            }
                }
 
        
    System.out.println("НОД "+n+" чисел"+" равен "+nod);
     System.out.println("НОК "+n+" чисел"+" равен "+nok);
 
} 
            static int gcd(int a, int b) { //метод вычисляющий НОД
              if(b==0) return a;
              else return gcd(b,a%b);
          }
  }
1
0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 1
05.12.2019, 23:44 6
Цитата Сообщение от Sanan07 Посмотреть сообщение
Java
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
import java.util.Scanner;
 
public class Main {
 
  static int n,m,num,nod,nok,P;
 
  public static void main (String[]  args) {
     
      Scanner s= new Scanner(System.in);
 
    n=s.nextInt(); int [] a = new  int [n];
    for(int i=0;i<a.length;i++) {
        a[i]=s.nextInt();
    }
 
  P=1;
  
    for(int i=0;i<a.length;i++) { //Нахождение НОД всех чисел массива
        if(i+1<a.length) {
            for(int j=i+1;j<=i+1;j++) {
                nod=gcd(a[i], a[j]);
                P=a[i]*a[j];
                nok=P/nod;
            }a[i+1]=nod;a[i+1]=nok;
            }
                }
 
        
    System.out.println("НОД "+n+" чисел"+" равен "+nod);
     System.out.println("НОК "+n+" чисел"+" равен "+nok);
 
} 
            static int gcd(int a, int b) { //метод вычисляющий НОД
              if(b==0) return a;
              else return gcd(b,a%b);
          }
  }
НОД тут считает неверно. Например, для 4 чисел 5, 10, 15, 20 вьідает нод = 10. А за НОК спасибо, класс.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2019, 23:44

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Нахождение НОД и НОК двух заданных целых чисел
В поиске нашел только по отдельности

Найти НОК и НОД , и что бы можно было ввести до 10 чисел , как это сделать на с++?
Здравствуйте , мне нужно найти НОК и НОД , и что бы можно было ввести до 10 чисел , как это можно...


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

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

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