function isPrime (number : int) : boolean for i : 2 .. (number - 1) if number mod i = 0 then result false end if end for result true end isPrime procedure perfectNum (number : int) var double : int := 0 var total : int := 1 for n : number .. 15 double := 2 ** n total := total + double if isPrime (total) = true then put total * double end if end for end perfectNum perfectNum (1)