' Programma per la verifica sperimentale della Congettura di Goldbach: ogni ' numero pari maggiore di 2 e` somma di due numeri primi diversi tra loro. ' Al momento (2000), ne' la congettura ne' la sua negazione sono state ' dimostrate ' -> Matematica e Calcolatore, sch.8, es.6 PRINT : PRINT via: COLOR 14 INPUT "ricerca dei numeri primi <= N; N="; max COLOR 7 IF max > 16383 THEN PRINT "Scegli N < 16384": GOTO via DIM a(max): rad = SQR(max) ' lascio a(n)=0 se n e' primo (o e' 0), se no metto in a(n) un fattore primo di n FOR fat = 2 TO rad IF a(fat) = 0 THEN FOR i = fat * fat TO max STEP fat: a(i) = fat: NEXT NEXT WHILE 0 = 0 COLOR 11 INPUT "1: elenco numeri primi, 2: fattorizzare, 3: Goldbach, 4: altro N, 5: fine"; risp COLOR 7 IF risp = 1 THEN COLOR 15 PRINT "elenco primi compresi tra h e k (<="; max; ") "; INPUT "h,k="; h, k COLOR 7 IF k > max THEN k = max: PRINT "prendo k="; max IF h = 0 THEN h = 1 j = 0 FOR i = h TO k: IF a(i) = 0 THEN PRINT i; : j = j + 1: IF j / 50 = j \ 50 THEN COLOR 11: INPUT "Enter", x$: COLOR 7 NEXT: PRINT COLOR 14: PRINT j; " numeri primi (contando anche il numero 1)": COLOR 7 ELSEIF risp = 2 THEN COLOR 15 PRINT "n. da scomporre <="; max; : INPUT N COLOR 7 IF N > max THEN PRINT "numero troppo grande" ELSE WHILE a(N) > 0: PRINT a(N), : N = N / a(N): WEND PRINT N END IF ELSEIF risp = 3 THEN FOR i = 2 TO max STEP 2 v = 0 FOR j = 1 TO i - 1 IF a(j) = 0 THEN IF a(i - j) = 0 THEN PRINT i; "="; j; "+"; i - j; " # "; : j = i - 1: v = 1 ' se trovo la coppia di addendi pongo v=1 e esco dal ciclo ponendo j=i-1 NEXT IF v = 0 THEN PRINT "falsa": i = max IF i \ 100 = i / 100 THEN INPUT ; "", wwww$ NEXT: PRINT ELSEIF risp = 4 THEN ERASE a: GOTO via ELSEIF risp = 5 THEN END END IF WEND