반응형
나는 여기에 꽤 간단한 것을 놓치고 있다는 느낌이 들지만이 한 가지 기능에서 :
def triplets(perimeter):
triplets, n, a, b, c = 0 #number of triplets, a, b, c, sides of a triangle, n is used to calculate a triple
L = primes(int(math.sqrt(perimeter)) #list of primes to divide the perimeter
for item in L: #iterate through the list of primes
if perimeter % item == 0: #check if a prime divides the perimeter
n = perimeter / item
a = n**2 - (n+1)**2 #http://en.wikipedia.org/wiki/Pythagorean_triple
b = 2n*(n+1)
c = n**2 + n**2
if a+b+c == perimeter: #check if it adds up to the perimeter of the triangle
triplets = triplets + 1
return triplets
오류가 발생합니다.
for item in L:
^
SyntaxError: invalid syntax
완전성을 위해 전체 프로그램은 다음과 같습니다.
import math
def primes(n): #get a list of primes below a number
if n==2: return [2]
elif n<2: return []
s=range(3,n+1,2)
mroot = n ** 0.5
half=(n+1)/2-1
i=0
m=3
while m <= mroot:
if s[i]:
j=(m*m-3)/2
s[j]=0
while j<half:
s[j]=0
j+=m
i=i+1
m=2*i+3
return [2]+[x for x in s if x]
def triplets(perimeter):
triplets, n, a, b, c = 0 #number of triplets, a, b, c, sides of a triangle, n is used to calculate a triple
L = primes(int(math.sqrt(perimeter)) #list of primes to divide the perimeter
for item in L: #iterate through the list of primes
if perimeter % item == 0: #check if a prime divides the perimeter
n = perimeter / item
a = n**2 - (n+1)**2 #http://en.wikipedia.org/wiki/Pythagorean_triple
b = 2n*(n+1)
c = n**2 + n**2
if a+b+c == perimeter: #check if it adds up to the perimeter of the triangle
triplets = triplets + 1
return triplets
def solve():
best = 0
perimeter = 0
for i in range(1, 1000):
if triplets(i) > best:
best = triplets(i)
perimeter = i
return perimeter
print solve()
Python 2.7.1을 사용하고 있습니다. for 루프 뒤에 세미콜론이 있습니다. primes (n)
함수가 작동합니다. 아마도 어리석은 느낌이 들지만이 잘못된 구문을 일으키는 원인을 파악할 수 없습니다.
해결 방법
이전 줄에 닫는 괄호가 없습니다.
L = primes(int(math.sqrt(perimeter)) #list of primes to divide the perimeter
# ^ ^ ^ ^^
#nesting count 1 2 3 21
줄 아래의 "중첩 개수"에서 어떻게 0에 도달하지 않는지 보십니까?
참조 페이지 https://stackoverflow.com/questions/8886730
반응형
'파이썬' 카테고리의 다른 글
파이썬 Mu 및 Sigma를 사용하여 Python에서 로그 정규 분포를 얻으려면 어떻게해야합니까? (0) | 2020.09.19 |
---|---|
파이썬에서 부동 숫자를 고정 너비로 포맷하는 방법 (0) | 2020.09.19 |
파이썬 PEP-8이 최대 줄 길이를 79 자로 지정하는 이유는 무엇입니까? (0) | 2020.09.19 |
파이썬 외부 명령을 호출하는 방법은 무엇입니까? (0) | 2020.09.19 |
파이썬 Hide all warnings in ipython (0) | 2020.09.19 |
댓글