저는 방금 파이썬을 배우기 시작했고 기술을 향상시키는 데 도움이되는 몇 가지 문제를 시작했지만이 질문에 상당히 매달 렸습니다.제곱이 두 개의 사각형의 합인 숫자 목록
정사각형이 두 개의 제곱의 합으로 표현 될 수있는 1000까지의 모든 양의 정수를 포함하는 목록을 만듭니다 (즉, p^2 = m^2 + n^2 인 정수 p, 여기서 m n은 0보다 큰 정수임).
힌트 : 몇 가지 접근법이 있습니다. 모든 사각 숫자 목록을 작성하는 것이 도움이 될 수 있습니다. in 연산자가 유용 할 수 있습니다. 여기
내가 지금까지 가지고 올 한 코드입니다 :numbers=xrange(1001)
numbers_squared=[x**2 for x in numbers]
a=[]
for x in numbers_squared:
for b in numbers_squared:
if (x+b)**.5 <= 1001:
a.append(x+b)
print a
나는이 함께 얻을 문제는 파이썬 내가 10 분을 기다렸다 (이러한 계산을 할 수 년이 걸리는이며 아직 번호 인쇄). 이 문제를 해결하는 방법에 대한 모든 힌트는 매우 높이 평가 될 것입니다.
p.s. 요점은 목록을 사용하는 것입니다. 또한 힌트는 솔루션 자체보다 더 높이 평가 될 것입니다.
감사합니다!
음, 두 번째 for 루프를 x 이하의 숫자로 제한 할 수 있습니다. '8 ** 2 = 64'는 '64'보다 큰 숫자의 합으로 표현 될 수 없습니다. –
숫자가 몇 개인 지 알려 주시겠습니까? – inspectorG4dget
필자는 그렇게 생각했지만 파이썬에서 정확히 어떻게 작성해야할지 확신하지 못했습니다. 힌트를 주셔서 감사합니다 : D – Dizzle