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.
если что непонятно, как получается - пиши.
Поделитесь своими знаниями, ответьте на вопрос:
Решить через pascal 1. к финалу конкурса лучшего по профессии "специалист электродорожник" были допущены трое: иванов, петров, сидоров. соревнования проходили в 3 тура. иванов в первом туре набрал m1 , во втором - n1, в третьем - p1. петров соответственно: m2, n2, p2. сидоров: m3, n3, p3. составить программу, определяющую кто победитель и сколько набрал . 2. составить программу, вычисляющую стоимость покупки с учетом скидки: куплено три товара и, если сумма покупки превышает 1500 р., то начисляется скидка 2%
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.