Feladatok:
a) 10 és 100000 között hány prímszám van?
b) 10 és 100000 között melyik a legnagyobb prímszám?
A 10 és 30 közötti prímszámok: 11; 13; 17; 19; 23; 29; ezek közül 3 olyan is van, amelyek számjegyeinek összege is prím: 11: 1+1=2; 23: 2+3=5; 29: 2+9=11.
c) 10 és 100000 között hány olyan prímszám van, amely számjegyeinek az összege is prím?
Minta:
a) 9588
b) 99991
c) 3879
primek = []
for i1 in range(10,100001): osztok = [] for i2 in range(2,int(i1**0.5)+1): # elég csak a szám gyökéig vizsgálni az osztókat if i1%i2 == 0: osztok.append(i2 #print(i1,osztok) if not osztok: primek.append(i1)
print('a)',len(primek))
print('b)',primek[-1])
# a számjegyek összege max 6×9=54 lehet, előállítjuk a prímeket 54-ig
osszeg_primek =
for i1 in range(2,54): osztok = [] for i2 in range(2,i1): if i1%i2 == 0: osztok.append(i2) #print(i1,osztok) if not osztok: osszeg_primek.append(i1)
#print(osszeg_primek)
jo_primek = 0
for szam in primek: szam_str = str(szam) szamjegyek_osszege = sum([int(szamjegy) for szamjegy in szam_str]) if szamjegyek_osszege in osszeg_primek: #print(szam) jo_primek += 1
print('c)'jo_primek)