Python :: Aufgabe #46

6 Lösungen Lösungen öffentlich

Alle Primzahlen bis zu einem Maximalwert ermitteln

Anfänger - Python von devnull - 26.02.2014 um 18:36 Uhr
Es soll ein Programm geschrieben werden, welches alle Primzahlen im Bereich von 2 bis zu einem Maximalwert sucht und auf der Konsole ausgibt.
Den Maximalwert soll der Benutzer beim Programmaufruf auf der Kommandozeile angeben können.
Der Algorithmus zur Primzahlensuche ist frei wählbar.

Lösungen:

vote_ok
von malthea (180 Punkte) - 04.03.2014 um 19:03 Uhr
Quellcode ausblenden Python-Code
""" primzahlen - Python 3.3.4
    Berechnet alle Primzahlen im Intervall [2 - obere Grenze] """

def eingabe (a):
    """ abgesicherte Eingabe fuer Integerwerte (a==False)
    """
    b = 0

    while a == False:
        try:
            b = int(input(':'))
            a = True
            if b < 3:
                a =False
                print ('Bitte eine positive Zahl groesser als 2 eingeben', end = ' ')
        except ValueError:
            print ('Bitte eine Integerzahl eingeben', end = ' ')
            a = False
    return b

def aufaddition (a, b, c):
    """ addiert die bisher gefundenen Primzahlen auf bis >= aktuelle Zahl
    """
    while a <= c:
        a += b

    return (a)
    
pz = [2]
pzsumme = [2]

print ('bis zu welcher Zahl sollen die Primzahlen berechnet werden?', end = ' ')
maximum = eingabe (False)

pzanz = 1
lfdzahl = 3
flag = True
i = 0
j = 0

while lfdzahl in range (2, maximum+1):
    
    while flag == True and i < pzanz:

        while i in range (0, pzanz):
            if pzsumme[i] == lfdzahl:
                flag = False                   # keine Primzahl

            pzsumme[i] = aufaddition (pzsumme[i], pz[i], lfdzahl)

            i += 1

    if flag == True:
        pz.append (lfdzahl)
        pzsumme.append (lfdzahl)
        pzanz += 1

    lfdzahl +=1
    i = 0
    flag = True



print (pz)
1x
vote_ok
von Freki (850 Punkte) - 27.10.2014 um 14:27 Uhr
Quellcode ausblenden Python-Code
l = []
modanzahl=0
x = 0
prim = int (input("Bitte geben sie eine Zahl ein"))
ablauf = prim



while prim != 1:
    while ablauf > 0:
        mod = prim % ablauf
        ablauf = ablauf - 1
        if mod == 0:
            modanzahl= modanzahl + 1
    if modanzahl == 2:
        print (prim, "ist eine Primzahl")
        l.append(prim)
    prim = prim -1
    ablauf = prim
    modanzahl = 0




print ("Hier eine Liste aller Primzahlen:")
print (l)
vote_ok
von jigga (4260 Punkte) - 26.08.2015 um 08:58 Uhr
Quellcode ausblenden Python-Code
import math

def prim(n):
	if n == 2:
		return True
	if n % 2 == 0:
		return False
	else:
		for i  in range(2,int(math.sqrt(n))+1):
			if n % i == 0:
				return False
		return True

wert = int(input("Maximalwert eingeben: "))

for i in range(2,wert+1):
	if prim(i) == True:
		print(i)
vote_ok
von Nachbar (2820 Punkte) - 12.08.2016 um 10:06 Uhr
Quellcode ausblenden Python-Code
# -*- coding: utf-8 -*-

#feststellen ob Zahl Primzahl ist oder nicht
def isprim(wert):
    x = 2
    if wert == 0 or wert == 1:
        return False
    elif wert == 2:
        return True
    else:
        while x < wert:
            if wert % x == 0:
                return False
            x = x + 1
    return True

eingabe = input("Bitte eine Zahl als Obergrenze eingeben: ")

# Ausgabe aller Primzahlen bis Zahl
y = 0
while y <= eingabe:
    if isprim(y):
        print y
        y = y + 1
    else:
        y = y + 1
vote_ok
von hsiemens (290 Punkte) - 26.01.2017 um 16:19 Uhr
Quellcode ausblenden Python-Code
import os, sys, time

def eratosthenes(prim, limit):
	i=j=0
	anzahl=0
	
	prim[1]=1
	i=2
	
	while i*i <= limit:
		if prim[i] == 1:
			j=i<<1
			while j <= limit:
				#print(prim)
				prim[j]=0
				j+=i
		i+=1
		

	for i in range(2, limit):
		if prim[i]==1:
			print(str(i)+"\t", end='')
		i+=1
	

def main():
	t_start=time.clock()
	i=0
	prim=[]
	limit=int(input("Limit eingeben...: "))
	
	prim=[(1) for i in range(limit+1)]

	eratosthenes(prim, limit)
	
	print("\nProgrammlaufzeit = "+str(time.clock()-t_start))
	sys.exit(0)
	
if __name__ == '__main__':
  main()

vote_ok
von Sheepie (20 Punkte) - 15.05.2019 um 12:33 Uhr
Quellcode ausblenden Python-Code

grenze = int(input("Obergrenze der Primzahlenausgabe: "))

i = 2
teiler = 0          
primzahl = [2]

for element in range(3, grenze):    
    while i < element:                  
        if element % i == 0:                   
            teiler = 1                  
            i = element
        else:
            i += 1
            
    i = 2
    
    if teiler == 0                   
        primzahl.append(element)
    teiler = 0                        
    
print("Primzahlen:", primzahl)

2108222

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.