def f(n):l=[1];exec"(n in l)>=any(n%k<1for k in range(2,n))>q;l=map(sum,zip([0]+l,l+[0]));"*n
Çevrimiçi deneyin!
Bu, çıkış kodu ile çıkış yapan , Pascal Primes için 0 , aksi takdirde 1 adlı bir işlev f işlevidir .
Bu nasıl çalışır?
def f(n):l=[1]; # Define a function f (arg. n) and a list l = [1].
exec"..."*n # Execute n times.
(n in l) # Boolean: "n is in l?" is greater than...
>=any(n%k<1for k in range(2,n)) # the boolean: "Is n composite?"?
>q; # If the boolean comparison returns a falsy
# result, then continue on without any difference.
# Otherwise, evaluate the other part of the
# inequality, thus performing "is greater than q".
# Since we have no variable "q", this terminates
# with exit code 1, throwing a "NameError".
l=map(sum,zip([0]+l,l+[0])); # Generate the next row in Pascal's triangle,
# By zipping l prepended with a 0 with l appended
# with a 0 and mapping sum over the result.
Bu temelde n'nin Pascal üçgeninin ilk n - 1 sırasında mı yoksa asal olup olmadığını kontrol eder ve bu iki koşuldan herhangi biri karşılanırsa bir hata atar.
Sayesinde 1 bayt kaydedildi Ovs .