"""
반복문을 이용한 문제풀이
 1) 1부터 N까지 홀수출력하기
 2) 1부터 N까지 합 구하기
 3) N의 약수출력하기
"""
n = int(input("-->"))
listofn = []
sum = 0

//1번, 2번문제 동시에 수행
for i in range(1,n+1):
    sum += i
    if i%2!=0:
        print(i)

print("합계 -> " + str(sum))

decreaseN = n
devider = 2

//3번 문제 수행
//감소하는 decreaseN이 1이 아닐때까지 수행 또는 devider가 입력 변수 n의 1/2값 보다 크면 종료
//devider를 1씩 증가하면서 입력 변수 n과 나누고 몪이 0이면 소인수 추가
//devider를 1씩 증가하면서 입력 변수 n과 나누고 몪이 0이 아니면 devider 1 증가
while decreaseN!=1:
    if devider > n/2:
        break
        
    if decreaseN % devider == 0:
        decreaseN /= devider
        listofn.append(devider)
    else:
        devider+=1

print(listofn)           

 

'Program > Python' 카테고리의 다른 글

List 다루기(2/2)  (0) 2021.03.22
List 다루기 (1/2)  (0) 2021.03.21
문자열 내장함수  (0) 2021.03.15
for, break, else  (0) 2021.03.07
map 함수 - 다중 형변환  (0) 2021.03.07

코드

//1. 0~9까지 데이터를 포함한 list 생성
//2. i에 0값 대입 후 for문 print 수행
//3. 수행 후 i에 2 증가
//4. i가 9를 초과하면 else문 수행
for i in range(0,10,2):
    print(i)
else:
    print("모든 데이터 출력")

출력

0
2
4
6
8
모든 데이터 출력

 

코드

//1. 0~9까지 데이터를 포함한 list 생성
//2. i에 0값 대입 후 for문 print 수행
//3. 수행 후 i에 2 증가
//4. i가 9를 초과하거나 i가 3보다 크면 for문 탈출
//5. break로 수행되었기 때문에 else문 무시
for i in range(0,10,2):
    print(i)
    if i >= 3:
        break
else:
    print("모든 데이터 출력")

출력

0
2
4

 

간단한 for문 및 for문을 모두 완료시 수행하는 else문을 설명했다.

지금까지 했던 다른언어 C++, C#, Java에서도 이런 코드가 있던가?

아무튼 for~else문은 현재 for문을 모두 돌았는지 확인하는? 그런 용도로 쓰일것 같다.

//1. 사용자 입력을 받는다.
//2. 문자열 입력 데이터를 ',' 기준으로 자른후 문자열 리스트를 반환한다.
//3. 문자열 리스트를 float으로 모두 변환 시킨다.
//4. float으로 변환된 float 리스트를 a, b에 저장한다.
//5. 저장된 a, b를 출력한다.
a, b = map(float, input("-->").split(','))
print(a, b)

 

입력

--> 1,2

출력

1 2

 

알고리즘 문제 풀다보면 사용자 입력을 받아야 하는 문제가 존재한다.

이전 C++로 풀었다면 생각보다 귀찮은 코드가 추가되어야 하지만 python은 이처럼 간단하게 처리가 가능하다.

 

입력!!, 자르기!!, 변환!!

+ Recent posts