HOW TO REPORT is.giuga n: \ each prime factor must appear only once, e.g.: for 2: \ [ ( n / 2 ) - 1 ] mod 2 = 0 => n / 2 is odd => n isn't divisible by 4 \ similarly for other primes PUT 1, 3, 1, floor( n / 2 ) IN f.count, f, giuga, v WHILE f <= v AND giuga = 1: IF v mod f = 0: PUT f.count + 1 IN f.count IF ( ( floor( n / f ) ) - 1 ) mod f <> 0: PUT 0 IN giuga PUT floor( v / f ) IN v PUT f + 2 IN f IF giuga = 1: \ n is still a candidate, check it is not prime IF f.count = 1: FAIL \ only 1 factor - it is prime so not giuga REPORT giuga = 1 PUT 0, -2 IN g.count, n WHILE g.count < 4: PUT n + 4 IN n \ assume the numbers are all even IF is.giuga n: PUT g.count + 1 IN g.count WRITE n