Консультация № 85161
02.05.2007, 22:58
0.00 руб.
0 1 1
здраствуйте уважаемые эксперты помогите решить задачку на паскале!!
дано число n, написать программу, которыя определяет все пары взаимопростых чисел, вывести эти числа на экран парами, и написать количество пар.взаимопростые числа , это такие числа у которых наибольший общий делитель равен 1.
т.е. если n=4 то это 1:1 1:2 1:3 1:4 2:3 3:4 нужно действовать так:
1. пусть i равно от 1 до n находим наибольший общий делитель для i
и n. выводим те пары чисел, у которых наибольший общий делитель равен 1
2. увеличиваем i на1 т.е. i:=i+1
для нахождения наибольшиего общего делителяиспользуем алгоритм евклида например если даны числа a и b и найти их НОД в паскале
program reo;
var a, b, c : integer;
begin
read (a,b);
c:=b;
b:=a;
a:=c;
repeat
c:=a mod b;
a:=b;
b:=c;
until b=0;
writeln (a);
end.
причем нахождение НОД должно быть описанно в описательной части программы т. е. описанна как function
очччень прошу помогите!!!
заранее спасибо!!!!!!!!!!!

Обсуждение

Неизвестный
02.05.2007, 23:40
общий
это ответ
Здравствуйте, Fenechkaa!

Вот исходный код:

<code>program q85161;
function nod(x,y:integer):integer; <font color=green>{функция нахождения НОД}</font>
var r:integer;
begin
repeat
r:=x mod y;
x:=y; y:=r;
until y=0;
nod:=x;
end;
<font color=green>{ОСНОВНАЯ ПРОГРАММА}</font>
var n,i,j,kol:integer;
begin
read(n); kol:=0;
for i:=1 to n do
for j:=1 to n do
if (nod(i,j)=1) and (i<=j) then
begin writeln(i,‘:‘,j); inc(kol); end; <font color=green>{вывод на экран очередной пары}</font>
writeln(‘count=‘,kol);<font color=green>{выводим общее количество пар}</font>
readln;
end.</code>

Good Luck!!!
Форма ответа