Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2014, 22:14
Аватар для sashok
Новичок на форуме
Отправить личное сообщение для sashok Посмотреть профиль Найти все сообщения от sashok
 
Регистрация: 22.10.2013
Сообщений: 7

JS задача. Взаимно простые числа
Добрый вечер! Пытаюсь решить задачу:
Составить программу, проверяющую, будет ли взаимно просты два натуральных числа.

Не могли бы вы описать ход решения. Не программой, а объяснением того как бы вы это делали.

Вот что я думаю:
Сперва создать две переменные prompt, в которые будут вноситься числа. Потом с помощью цикла перебрать на какие числа они делятся без остатка, потом сравнить эти два массива, если есть схожие числа, то выдавать сообщение о том, что числа являются не взаимными!
Кто что думает?
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2014, 22:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 11,603

Сообщение от sashok
Сперва создать две переменные prompt
Чем провинились инпуты?

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

Последний раз редактировалось ksa, 22.11.2014 в 22:56.
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2014, 00:47
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Можно найти наибольший общий делитель (по алгоритму Евклида), и если он равен 1, то взаимно простые.
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2014, 00:51
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Взаимно простые числа
Алгоритм Евклида
Реализации алгоритмов/Алгоритм Евклида

function isCoprime (a, b) {
	console.log(a + "," + b);
	var num;
	while ( b ) {
		num = a % b;
		console.log(num);
		a = b;
		b = num;
	}
	if (Math.abs(a) == 1) {
		console.log(true);
		return true;
	}
	console.log(false);
	return false;
}
isCoprime(1071, 462);
isCoprime(14, 25);
isCoprime(15, 25);
isCoprime(1, 1);
Ответить с цитированием
  #5 (permalink)  
Старый 23.11.2014, 00:51
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Яростный Меч
Можно найти наибольший общий делитель (по алгоритму Евклида), и если он равен 1, то взаимно простые.
немного опередил
Ответить с цитированием
  #6 (permalink)  
Старый 23.11.2014, 10:16
Аватар для sashok
Новичок на форуме
Отправить личное сообщение для sashok Посмотреть профиль Найти все сообщения от sashok
 
Регистрация: 22.10.2013
Сообщений: 7

спасибо за разъяснения!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операционная Система на JS Icat Общие вопросы Javascript 2 05.07.2014 00:03
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
перемножить 2 числа а потом сложить js djonA Общие вопросы Javascript 20 24.06.2013 22:29
Вставка кода js с помощью js Alice Общие вопросы Javascript 1 12.06.2013 19:05
Задача по JS Gambit228 Работа 8 08.01.2013 19:28