57 lines
627 B
Plaintext
57 lines
627 B
Plaintext
|
//valid,6857
|
||
|
//:END:
|
||
|
import "../std.qbl"
|
||
|
|
||
|
600851475143 2 divHasLargerPF 3
|
||
|
while
|
||
|
{
|
||
|
// n p
|
||
|
req dup 2 req req +
|
||
|
// p n p+2
|
||
|
swp req
|
||
|
// n p p+2
|
||
|
divHasLargerPF
|
||
|
// p+2 hasLPF newN
|
||
|
req
|
||
|
}
|
||
|
deq 2 - intToStr println
|
||
|
|
||
|
function int int => bool int divHasLargerPF
|
||
|
{
|
||
|
req dup req divIfDivisible
|
||
|
// n newN
|
||
|
1 req dup
|
||
|
// newN 1 n newN
|
||
|
== req req
|
||
|
// is1 n newN
|
||
|
if
|
||
|
{
|
||
|
false req deq
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
true deq req
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function int int => int divIfDivisible
|
||
|
{
|
||
|
// p n
|
||
|
dup req dup swp
|
||
|
// p n p n
|
||
|
divmod 0
|
||
|
// p n p/n p%n 0
|
||
|
req req req ==
|
||
|
// p n p/n isDiv
|
||
|
req req req
|
||
|
if
|
||
|
{
|
||
|
deq req divIfDivisible
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
req deq deq
|
||
|
}
|
||
|
}
|
||
|
|