J, 5454 47 bytes
-:@+/@:*:@((1+]*/:~)`]@.((1=+./)*(=<@,.)@%&1@x:@((]*]^/)-@([*[)))^:_>2&p:)^:(<8<12)3
plain vanilla implementation : starting at x set y=x+1 >:
and iterate (1+])
incrementing y until both predicates (1=+.)
"hcf is 1" and (=<.)@%:@((]*])-([*[)))^:_>:
"differenceTIO
greedy split of squares is a perfect square" are satisfiedprime factors into coprime factors