Даны два числа. определить какой число имеет больше делителей. в паскале цикл

аноним56889 аноним56889    3   18.05.2019 19:20    2

Ответы
supermosyagina supermosyagina  12.06.2020 00:57

var a,b,i,nda,ndb:integer;

begin

   readln(a,b);

   nda := 0;

   ndb := 0;

   for i := 1 to a do

      if (a mod i = 0) then inc(nda);

   for i := 1 to b do

      if (b mod i = 0) then inc(ndb);

   if (nda > ndb) then

      writeln(a, ' has more divisors than ', b)

   else if (ndb > nda) then

      writeln(b, ' has more divisors than ', a)

   else

      writeln(a, ' and', b, ' has equal number of divisors')

end.

ПОКАЗАТЬ ОТВЕТЫ
lozhe4ka lozhe4ka  12.06.2020 00:57

var
a,b,i,n,k,z:integer; {k, z - количество делителей числа}

BEGIN
readln(a,b); {Cчитаем эти два числа}

k := 1;
z := 1;

if a > b then
n := a
else
n := b;

for i := 2 to n do
begin
if (a >= i) and (a mod i = 0) then
k := k + 1;
if (b >= i) and (b mod i = 0) then
z := z +1
end;

if k = z then
write('Одинаковое количество делителей')
else
if k > z then
write('Число a имеет больше делителей')
else
write('Число b имеет больше делителей')
END.

 

Если что непонятно, как получается - пиши.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика