Помощь - Поиск - Пользователи - Календарь
Полная версия: процедуры
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
СТАНИСЛАВ
Здравствуйте обращаюсь к вам с просьбой помоч в решении.
Дана такая задача:

Составить программу, проверяющую, является ли данные три числа взаимно простыми.

помогите с решением
Как я поня взаимно простые числа это числа которые свободно делятся между собой и делять причём без остатка. Такими числами могут служить 2, 4, 8 все они делятся друг на друго без остатк а это значит, что можно считать их взаимно простыми.Сложность для меня заключается в том что я не понимаю как это выражение представить в виде процедуры и как вообще отобразить её в программе. Подскажите каму по силам эта задача, у тех кого я спрашивал даже не знали с чего сдесь начать вот и я не понимаю.


Пмогите пожалуста.
Ozzя
Цитата
ВЗАИМНО ПРОСТЫЕ ЧИСЛА натуральные числа, не имеющие общих делителей, отличных от 1; напр., 15 и 16.
СТАНИСЛАВ
Дружище помоему ты не прав мне сам преподователь сказал что такое взаимно простые числа.
Темболее ты указал всего два когда нужно три. Я согласен что это натуральные числа, но причём здесь 1 если любое целое число разделить на 1 то будет этоже число
volvo
СТАНИСЛАВ, преподаватель не прав... Ищи определение взаимно простых чисел в учебнике или в интернете, и ты в этом убедишься.

Как найдешь - придешь и расскажешь, ЧТО же такое взаимно простые числа. А если ты пришел сюда спорить - то иди и спорь с преподавателем. В частности - на основании вот этого:
http://encycl.accoona.ru/?id=10820
Clerick
Если наибольший общий делитель чисел (в твоем случае трех) равен единице, то они называются взаимно простыми! (Справочник школьника по математике)
kornet
Цитата
Составить программу, проверяющую, является ли данные три числа взаимно простыми.

помогите с решением



program zada4a;

var a, b, c : integer;
z : string;

procedure caution (a, b, c : integer);

var d, e, f, g, num : integer;
x : Boolean;

begin

e := 1;
f := 1;
g := 1;


num := 31000;
x := (e = 0) and (f = 0) and ( g = 0);

while (x <> True) and (num <> 1) do begin

e := a mod num;
f := b mod num;
g := c mod num;

x := (e = 0) and (f = 0) and ( g = 0);
num := num - 1;

end;

if (x = false ) then
begin

Writeln ('Eti 4isla vzaimno prostie');
end

else if (x = true) then
begin

Writeln ('Eti 4isla ne vzaimno prostie');

end;

end;



begin

Writeln ('Enter ');

Readln (a, b, c);

caution (a, b, c);

readln (z);

end.


P.S. Я сам только учу Паскаль... Возможно эту прогу можно написать более лучшим способом.
P.S.S. Поменял местами true и false...теперь вроде бы правильно.
volvo
kornet, правда?
А ты проверял свою программу? Какие делители кроме единицы есть у чисел 15, 16, 17 ?

Так что же твоя программа говорит, что они НЕ взаимно простые???
Цитата(Правила Раздела)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
Это относится ко всем, между прочим, и ты - не исключение...

Написали же, что надо проверять НОД:
function GCD (A: integer;  B: integer): integer;
begin
while (a <> 0) and (b <> 0) do
if a >= b then
a := a mod b
else
b := b mod a;
GCD := a + b;
end;

var a, b, c: integer;
begin
writeln('enter numbers:'); readln(a, b, c);

if GCD(a, b) * GCD(a, c) * GCD(b, c) = 1 then writeln('Yes')
else writeln('No');
end.
СТАНИСЛАВ
Спасибо всем что открыли мне глаза теперь я понял что значат взаимно простые числа.Надеюсь больше не буду задовать таких "неправильных вопросов" Я вижу что спорить с вами сдесь бесполезно. Очень благодарен за вашу помощ.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.