maxart
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Два натуральных числа называются "дружественными", если каждое из них равно сумме всех делителей другого, за исключением его самого (таковы, например, числа 220 и 284). Напечатать все пары "дружественных" чисел, не превосходящих заданного натурального числа. (Определить функцию, вычисляющую сумму делителей числа.) program pr4 integer s1,k,g,s write(*,*) "vvdedite chislo k" read(*,*) k ! думаю что то не так в этом блоке do g=2,k ! k это предел в котором ищем дружественные числа s=del(g) ! находим сумму делителей числа g s1=del(s-1) ! находим сумму делителей числа s-1 if((s1==g).and.(s/=g).and.(s/=x)) then write(*,*) "Chisla",g," i",s,"-drugestvenie" x=s1 endif end do contains integer function del(a) integer s,i,a s=0 do i=1,a-1 if(mod(a,i)==0) then s=s+i end if end do del=s end function del end |