Advertisement
Melanie1204

Untitled

Mar 8th, 2025
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.47 KB | None | 0 0
  1. import time
  2. def mobius(n):
  3.     """Berechnet die Möbius-Funktion μ(n)"""
  4.     if n == 1:
  5.         return 1
  6.     prime_factors = 0
  7.     i = 2
  8.     while i * i <= n:
  9.         if n % i == 0:
  10.             n //= i
  11.             prime_factors += 1
  12.             if n % i == 0:
  13.                 return 0  # n enthält ein Quadrat eines Primfaktors
  14.         i += 1
  15.     if n > 1:
  16.         prime_factors += 1
  17.     return -1 if prime_factors % 2 else 1
  18.  
  19. def mertens(n):
  20.     """Berechnet die Mertens-Funktion M(n)"""
  21.     mertens_sum = 0
  22.     for k in range(1, n + 1):
  23.         mertens_sum += mobius(k)
  24.     return mertens_sum
  25.  
  26. def find_x_for_condition(n,start, limit):
  27.     """Finde das klenste x für ein gegebenes n, für das M(x) > x^(1/n) gilt."""
  28.     for x in range(start, limit):
  29.         if abs(mertens(x)) > x ** (1 / n):
  30.             return x
  31.     return limit
  32.  
  33.  
  34. # Beispiel: Suche nach x für n=2
  35. n = 2.3
  36. limit=10000
  37. start=1000
  38. start_time=time.time()
  39. x = find_x_for_condition(n,start, limit)
  40. end_time=time.time()
  41.  
  42. elapsed_time=end_time-start_time
  43.  
  44. if isinstance(x, int):
  45.     if x == limit:
  46.         print(f"Kein x im Bereich bis {limit:,} gefunden.".replace(",", "."))
  47.         print(f"Die Berechnung hat {elapsed_time:.6f} Sekunden gedauert.")
  48.     else:
  49.      print(f"Das kleinste x, für das M(x) > x^(1/n) für n={n} gilt, ist x = {x:,}".replace(",", "."))
  50.      print(abs(mertens(x)))
  51.      print(x**(1/n))
  52.      print(f"Die Berechnung hat {elapsed_time:.6f} Sekunden gedauert.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement