/*************************************************/ /* Program written by David Oesper on 5 Apr 2019 */ /*************************************************/ data synodic; p1 = 87.9691; p2 = 224.701; p3 = 365.256; p4 = 686.971; s1 = 1/(1/p1 - 1/p3); s2 = 1/(1/p2 - 1/p3); s3 = 1/(1/p3 - 1/p4); do i = 1 to 10000; c1 = i/s1; c2 = i/s2; c3 = i/s3; r = (c1-int(c1))**2 + (c2-int(c2))**2 + (c3-int(c3))**2; output; end; run; proc sort data=synodic; by r; run; proc print data=synodic(obs=100); title 'synodic'; run;