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
온라인으로 사용해보십시오!
이것은라는 함수이다 F 로 출력 종료 코드 , 0 파스칼 소수에 대해 1 , 그렇지.
어떻게 작동합니까?
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.
이것은 기본적으로 n 이 파스칼 삼각형 의 첫 번째 n-1 행 에서 발생 하는지 또는 소수인지 확인 하고이 두 조건 중 하나라도 충족되면 오류를 발생시킵니다.
ovs 덕분에 1 바이트가 절약되었습니다 .