본문 바로가기

카테고리 없음

파이썬 for문 while문 활용 : 짝수홀수 암스트롱수

암스트롱수? 사실 학생때는 이런게 있는지도 몰랐는데 (배웠는데 기억이 안나는 것일수도 ) 암스트롱수의 공식은 아래와 같다. 파이썬으로 풀어보았다.

 

암스트롱수란...? ㅎㅎ 근데 문제 이외에 어디에 쓰이긴 하는걸까? 궁금해지네..

암스트롱수-문제
이세상 문제냐? ㅎㅎ

암스트롱수 공식 
#x*100 +y*10 + z = x3+y3+z3

정답:
153, 370,371,407

3자리수-암스트롱수-정답

 

 

# 암스트롱수
#x*100 +y*10 + z = x3+y3+z3

amstrongNum = []
for i in range(100,1000):
    x = i//100
    y = (i%100)//10
    z = (i%100)%10

    #print(f" {i} - {x} - {y} - {z} /  {i} - {x**3} - {y**3} - {z**3}")
    
    sum1 = x*100 + y*10 + z
    sum2 = x**3 + y**3 + z**3

    if sum1 == sum2:
        amstrongNum.append(i)

print (amstrongNum)

 

 

 

 

for 반복문과 while 을 사용해서 1~100 정수 중에서 짝수의 합을 출력하는 프로그램 작성.

1~100까지-짝수의합

 

1~100 중 짝수의 합
2550

프로그래밍은 코드를 작성해야 하니까 문제와 답을 먼저 알려준다. 그러고보면 결과보다 과정을 중시하고 과정을 채점하는 프로그램 언어 인것 같다.. ㅎㅎ 

이런 문제가 나오면 구하는 값은 합계니까 sum 변수 선언, 바로 for 문 때려서 1,100 까지 돌고 조건에 따라 누적하면 끝이다. 

# 1~100 중 짝수의 합
sum =0
for i in range(1,100):
    if( i%2 ==0) : #('짝수')
        sum += i
print(sum)

 

엇.. 가만 가만.. 왜 정답과 다르지?

for i in range(1,100):
    print(i)

위 로직을 실행해보면 알 수 있다. for i in range(1,100) 은 for range( 1 이상 , 100 미만)  과 같은 의미다. 1~99 까지 나온다.원하는 값은 1~100 이니까 for i in range(1,101) 로 바꿔줘야 한다.

보바 같은 실수를 했음. 괜찮다 고치면 되니까. ㅎㅎ

결론은 이렇게.

# 1~100 중 짝수의 합
sum =0
for i in range(1,101):
    if( i%2 ==0) : #('짝수')
        sum += i
print(sum)

1부터100까지-짝수의합-결과

잘나왔다.

 

 

 

시작값-끝값-누적합계구하라

시작수 입력
끝 수 입력
시작수 ~ 끝수까지 누적 합.

2, 6 입력하면 답은 20 나와야 함.

위 문제보다 오히려 더 쉬운 난이도의 질문이다. 입력 2개 받고 for문의 range에 시작수,끝수 넣어주면 된다. for range() 에 들어가는 값은 이상, 미만 이기때문에 끝수 +1 해줘야 한다.

주의 : for i in range(시작값 , 끝값+1)

해서 코드는 아래와 같다.

a = int(input("시작값="))
b = int(input("끝값="))

sum = 0
for i in range(a,b+1):
    sum +=i
print(sum)

 

 

 

하요요.. 이상 지식인 답변 겸 취미생활 끗. ㅎㅎ python 재밌다~ 아래것도 한번 해보셈~

 

파이썬 로또게임 만들기

파이썬 가위바위보 게임 만들기

 

 

for문-while문-활용-누적합계