Вывести в порядке возрастания все правильные дроби, знаменатели которых не превышают n - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Для заданного натурального значения n вывести в порядке возрастания все правильные дроби, знаменатели которых не превышают n.

Решение задачи: «Вывести в порядке возрастания все правильные дроби, знаменатели которых не превышают n»

textual
Листинг программы
uses crt;
function NOD(a,b:integer):integer;
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
NOD:=a
end;
var i,j,n:integer;
begin
clrscr;
write('n=');
readln(n);
for i:=2 to n do
for j:=1 to i-1 do
if NOD(i,j)=1
then write(j,'/',i,' ');
readln
end.

Объяснение кода листинга программы

  1. В функции NOD(a,b:integer):integer; выполняется поиск НОД(наибольшего общего делителя) двух целых чисел a и b.
  2. Переменная i используется в цикле для первого параметра функции NOD, а переменная j — для второго параметра.
  3. Цикл for i:=2 to n do начинается с i=2 и выполняется до тех пор, пока i меньше или равно n.
  4. Цикл for j:=1 to i-1 do начинается с j=1 и выполняется до тех пор, пока j меньше i-1.
  5. Если NOD(i,j)=1, то это означает, что i и j являются делителями друг друга, и программа выводит их в формате j/i.
  6. Переменная n содержит число, которое считывается с помощью readln(n).
  7. Цикл for i:=2 to n do выполняет поиск всех делителей числа n, начиная с 2 и до n.
  8. Цикл for j:=1 to i-1 do проверяет все числа от 1 до i-1 на предмет того, являются ли они делителями числа n.
  9. Если функция NOD(a,b:integer):integer; возвращает 1, то это означает, что a и b являются делителями друг друга, и программа выводит их в формате j/i.
  10. Программа завершается после выполнения всех итераций циклов и выводит результат.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы