22 lines
845 B
Plaintext
22 lines
845 B
Plaintext
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
|