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

2

Ответы и объяснения

  • nelle987
  • Ведущий Модератор
2013-03-17T17:06:31+04:00

Это Проверенный ответ

×
Проверенные ответы содержат надёжную, заслуживающую доверия информацию, оценённую командой экспертов. На "Знаниях" вы найдёте миллионы ответов, правильность которых подтвердили активные участники сообщества, но Проверенные ответы - это лучшие из лучших.

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.

2013-03-17T17:07:38+04:00

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.

 

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