Maturità scientifica sperimentale – Indirizzo matematico-informatico – 1990
Si scriva un programma che produca i numeri primi inferiori a 100.000.
Si calcoli quanti sono i numeri primi che cadono in ciascuno dei seguenti intervalli
- 1 – 1.000
- 1.001 – 2.000
- 2.001 – 3.000
- …
- 99.001 – 100.000.
Visualizza quanti primi per ogni intervallo
import math # sqrt() def primo(x): if(x == 2): return True if(x%2 == 0): return False ultimo=int(math.sqrt(x)) for i in range(3, ultimo+1,2): if(x%i == 0): return False return True quanti=10*[0] n=1 for intervallo in range(10): for dimensione in range(1000): if(primo(n)): quanti[intervallo]+=1 n+=1 for intervallo in range(10): print("%10i %10i" %(intervallo, quanti[intervallo]))
Visualizza
- i numeri primi separati in blocchi per ogni intervallo
- la tabella riepilogativa con i conteggi
import math # sqrt() ################################### Primo? def primo(x): if(x == 2): return True if(x%2 == 0): return False ultimo=int(math.sqrt(x)) for i in range(3, ultimo+1,2): if(x%i == 0): return False return True ########################## Inizializza minimo =10*[0] massimo=10*[0] quanti =10*[0] for i in range(10): minimo[i] =1000*i+1 massimo[i]=1000*(i+1) minimo[0]=2 ############################################ Visualizza i blocchi for i in range(10): for n in range(minimo[i], massimo[i]+1): if(primo(n)): quanti[i] +=1 print(n, end=' ') print() print() ############################################################## Visualizza la tabella for i in range(10): print("%4i - %5i : %3i" %(minimo[i],massimo[i],quanti[i]))
matplotlib
import matplotlib.pyplot as plt import math def primo(x): if(x == 2): return True if(x%2 == 0): return False ultimo=int(math.sqrt(x)) for i in range(3, ultimo+1,2): if(x%i == 0): return False return True minimo =10*[0] massimo=10*[0] quanti =10*[0] N=range(10) for i in N: minimo[i] =1000*i+1 massimo[i]=1000*(i+1) minimo[0]=2 for i in N: for n in range(minimo[i], massimo[i]+1): if(primo(n)): quanti[i] +=1 plt.bar (N, quanti) plt.title("Numero di primi") plt.show ()