Bitte schreibe eine Rust-Funktion, die eine u64-Eingabe entgegennimmt und die größte Primzahl zurückgibt, die kleiner als dieser Wert ist.
Hier ist eine Beispielimplementierung der Funktion:

```
rustCopy codefn largest_prime_less_than(x: u64) -> u64 {
    if x <= 2 {
        return 0;
    }
    let mut n = x - 1;
    while n > 1 {
        if is_prime(n) {
            return n;
        }
        n -= 1;
    }
    0
}

fn is_prime(x: u64) -> bool {
    if x <= 1 {
        return false;
    }
    for i in 2..=(x as f64).sqrt() as u64 + 1 {
        if x % i == 0 {
            return false;
        }
    }
    true
}

```

Diese Implementierung überprüft zuerst, ob die Eingabe `x` kleiner oder gleich 2 ist. In diesem Fall gibt sie 0 zurück, da es keine Primzahlen gibt, die kleiner als 2 sind. Dann startet sie bei `x - 1` und dekrementiert `n`, bis sie die größte Primzahl findet, die kleiner als `x` ist, und gibt sie zurück. Die Hilfsfunktion `is_prime` überprüft, ob eine gegebene Zahl eine Primzahl ist oder nicht, indem sie über alle Zahlen bis zur Quadratwurzel der Zahl iteriert und überprüft, ob die Zahl durch eine von ihnen gleichmäßig teilbar ist. Wenn die Zahl nicht durch eine von ihnen teilbar ist, gilt sie als Primzahl.