Forum:  Programmieren
Thema: Python Listeneintrag verschwunden
Themen-Übersicht
Bekell
Aktiv
Dabei seit: 05.09.2008
Mitteilungen: 2082
Aus:
Themenstart: 2020-08-03 14:43

Hallo, die Funktion hab ich jetzt eingebaut, es flutscht, nur ist jetzt von den Primteilern der 1. aus der Liste verschwunden. Er zeigt bei allen Primteilerwerten höher als 1 immer eine zu wenig an....? hm...
Python
  1. from sympy.ntheory import isprime
  2.  
  3. j=1
  4. i=1
  5. global zahl
  6. nr=0
  7. sozlr=0
  8. Länge=0
  9. Divisor=0
  10. Teiler=[]
  11.  
  12. def AnzahlZZ(lst1):
  13. ZZAnzahl=0
  14. if len(lst1)>1:
  15. Länge=int(zahl/2)
  16. start=int(len(lst1))
  17. for i in range (start,0,-1):
  18. Divisor=lst1.pop(i-1)
  19. ZZAnzahl=ZZAnzahl+int(Länge/Divisor)
  20. return(ZZAnzahl)
  21.  
  22.  
  23. for zahl in range(-7,5003,10):
  24. nr=nr+1
  25. j=1
  26. while j <= (zahl)/2:
  27. if zahl%j==0:
  28. Teilerb=zahl//j
  29. if Teilerb%2>0 and isprime(Teilerb):
  30. Teiler.append(Teilerb)
  31. # print(nr,"zahl",zahl,"if: i:",i,"j:",j,"Teilerb",Teilerb,"Teiler",Teiler)
  32. j=j+1
  33. else:
  34.  
  35. #Teiler.append(Teilerb)
  36. #print(nr,"zahl",zahl,"else: i:",i,"j:",j,"Teilerb",Teilerb,"Teiler",Teiler)
  37. j=j+1
  38.  
  39.  
  40. if isprime(zahl):
  41. #print("prime Nr:",nr,"zahl",zahl,len(Teiler),"PrimTeiler",Teiler,)
  42. print(nr,"zahl",zahl,sozlr," prime")
  43. else:
  44. if zahl%3==0:
  45. print(nr,"zahl",zahl,sozlr,"3-",len(Teiler),"PrimTeiler",Teiler,AnzahlZZ(Teiler))
  46. else:
  47. sozlr=sozlr+1
  48. print(nr,"zahl",zahl,sozlr,len(Teiler),"PrimTeiler",Teiler,AnzahlZZ(Teiler))
  49. Teiler.clear()

Was ist zu tun?

So sieht der print aus:
4 zahl 23 PZNR: 3
5 zahl 33 NR3T: 1 3- 2 PrimTeiler [11] 5
6 zahl 43 PZNR: 4
7 zahl 53 PZNR: 5

Warum beginnt er nicht mit 3?


Scynja
Aktiv
Dabei seit: 23.02.2011
Mitteilungen: 336
Aus:
Beitrag No.1, eingetragen 2020-08-03 18:20

Meine Vermutung ist, dass du maximal 500 Zeilen in deiner Konsole siehst.

1 zahl -7 1 0 PrimTeiler [] None  
2 zahl 3 1  prime
3 zahl 13 1  prime
4 zahl 23 1  prime
5 zahl 33 1 3- 2 PrimTeiler [11] 5
6 zahl 43 1  prime
7 zahl 53 1  prime
8 zahl 63 1 3- 2 PrimTeiler [7] 10
9 zahl 73 1  prime
10 zahl 83 1  prime
...
494 zahl 4923 162 3- 2 PrimTeiler [547] 820
495 zahl 4933 162  prime
496 zahl 4943 162  prime
497 zahl 4953 162 3- 3 PrimTeiler [127, 13] 825
498 zahl 4963 163 2 PrimTeiler [709] 354
499 zahl 4973 163  prime
500 zahl 4983 163 3- 3 PrimTeiler [151, 11] 830
501 zahl 4993 163  prime
Ist das Ergebnis.


Bekell
Aktiv
Dabei seit: 05.09.2008
Mitteilungen: 2082
Aus:
Beitrag No.2, vom Themenstarter, eingetragen 2020-08-03 18:34

2020-08-03 18:20 - Scynja in Beitrag No. 1 schreibt:
Meine Vermutung ist, dass du maximal 500 Zeilen in deiner Konsole siehst.

500 zahl 4983 163 3- 3 PrimTeiler [151, 11] 830
501 zahl 4993 163  prime
Ist das Ergebnis.

4983 hat, wie richtig angegeben, 3 Primteiler, aber 2 sind nur angegeben. Ich hab das problem im Folgethread thematisiert.

Wenn ich die Funktion zuschalte, beginnt das Problem...




Dieses Forumbeitrag kommt von Matroids Matheplanet
https://https://matheplanet.de

Die URL für dieses Forum-Thema ist:
https://https://matheplanet.de/default3.html?topic=248901=5101
Druckdatum: 2020-10-29 17:03