on mouseUp ask "Number:" put it into number put number & " has factor " & factorPR(number) end mouseUp function factorPR number put random(number-4)+2 into rabbit1 put (rabbit1*rabbit1 + 1) mod number into rabbit2 repeat while (gcd(rabbit1 - rabbit2 + number & "," & number) is 1) put (rabbit1*rabbit1 + 1) mod number into rabbit1 put (rabbit2*rabbit2 + 1) mod number into rabbit2 put (rabbit2*rabbit2 + 1) mod number into rabbit2 end repeat return gcd(rabbit1 - rabbit2 + number & "," & number) end factorPR function gcd params put item 1 of params into num1 put item 2 of params into num2 if (num1 > num2) then put num1 into temp put num2 into num1 put temp into num1 end if repeat forever put num2 - num1 * trunc(num2/num1) into num2 if (num2 is 0) then return num1 put num1 - num2 * trunc(num1/num2) into num1 if (num1 is 0) then return num2 end repeat end gcd