Вопрос № 86063: уважаемые эксперты, в прошлый раз вы помогли решить задачу о нахождении всех пар взаимопростых чисел не превосходящих n, (взаимо простые числа это те числа, которые не имеют обших делителей кроме 1 ).
эта программа, идеально работает, выводит пар...
Вопрос № 86.063
уважаемые эксперты, в прошлый раз вы помогли решить задачу о нахождении всех пар взаимопростых чисел не превосходящих n, (взаимо простые числа это те числа, которые не имеют обших делителей кроме 1 ).
эта программа, идеально работает, выводит пары взаимопростых чисел, и считает их количество, но теперь препод требует изменить немного прогу , чтобы программа сначала вывела количество пар взаимопростых чисел, а потом, по желанию "клиента" расечатала количество пар.
как понимаю,сначало нужно посчитать сколько пар, вывести их на экран, а потом с помощью оператора if...then сделатьтак, что при нажатии "1" выводила пары, при нажатии "0" не выводила пары на экран.
привожу исходнуу прогу которая выводит сначала пары, а потом их количество,
program q85161;
function nod(x,y:integer):integer; {функция нахождения НОД}
var r:integer;
begin
repeat
r:=x mod y;
x:=y; y:=r;
until y=0;
nod:=x;
end;
{ОСНОВНАЯ ПРОГРАММА}
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; {вывод на экран очередной пары}
writeln('count=',kol);{выводим общее количество пар}
readln;
end.
очень прошу помогите!!!!!!!
Отправлен: 08.05.2007, 21:04
Вопрос задал: Fenechkaa (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Gh0stik
Здравствуйте, Fenechkaa!
Поскольку предыдущее решения было предложено мной, то и в этот раз решил опять Вам помочь, смотрите код:
program q86063;
function nod(x,y:integer):integer;
var r:integer;
begin
repeat
r:=x mod y;
x:=y; y:=r;
until y=0;
nod:=x;
end;
var n,i,j,kol:integer;
c:char;
begin
readln(n); kol:=0;
for i:=1 to n do
for j:=1 to n do
if (nod(i,j)=1) and (i<=j) then inc(kol); {на данном этапе мы просто считаем количество}
writeln('count=',kol);
write('write? (y/n) '); read(c); {просим ввести символ "y" если необходимо выводить на экран}
if c='y' then
for i:=1 to n do
for j:=1 to n do
if (nod(i,j)=1) and (i<=j) then writeln(i,':',j);
write('End program!!!');
readln;
end.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 08.05.2007, 21:42 Оценка за ответ: 5
Отвечает: Вологин Всеволод Вячеславович
Здравствуйте, Fenechkaa!
{ОСНОВНАЯ ПРОГРАММА}
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
inc(kol);
writeln('count=',kol);
Writeln('Вывести пары? Если 1 - то вывести');
Write(' другая клавиша - не выводить');
readln(kol);
If kol = 1 {Чтобы не описывать новые переменные исполь-ся kol}
Then
for i:=1 to n do
for j:=1 to n do
if (nod(i,j)=1) and (i<=j) then
writeln(i,':',j)
Readln;
End.
{но ксожалению текст проги намного увеличивается :(((}
--------- Студент