## Seriously, 25 bytes ,r`PªD;⌐k`M┬`π`Mi│g;)@\)\ Outputs `a\nb` (`\n` is a newline). Large inputs will take a long time (and might fail due to running out of memory) because prime generation is pretty slow. [Try it online!](http://seriously.tryitonline.net/#code=LHJgUMKqRDvijJBrYE3ilKxgz4BgTWnilIJnOylAXClc&input=Mw) Explanation: ,r`PªD;⌐k`M┬`π`Mi│g;)@\)\ ,r push range(input) `PªD;⌐k`M map: P k'th prime ª square D decrement ; dupe ⌐ add 2 (results in P_k + 1) k push to list ┬ transpose `π`M map product i│ flatten, duplicate stack g;) push two copies of gcd, move one to bottom of stack @\ reduce denominator )\ reduce numerator