languages/coding test
-
단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 11653번 #11653: 소인수분해 n = int(input()) while n != 1: for i in range(2, n+1): if n%i == 0: print(i) n = n//i break N=1인 경우를 깜빡하고 넣지 않았는데 그래도 성공 표시가 뜨더라고요.
[백준/Python] 11653번: 소인수분해단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 11653번 #11653: 소인수분해 n = int(input()) while n != 1: for i in range(2, n+1): if n%i == 0: print(i) n = n//i break N=1인 경우를 깜빡하고 넣지 않았는데 그래도 성공 표시가 뜨더라고요.
2024.02.07 -
단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 2581번 #2581: 소수 m = int(input()) n = int(input()) prime = [] for i in range(m, n+1): cnt = 0 if i > 1: for j in range(2, i): if i%j==0: cnt += 1 if cnt == 0: prime.append(i) if len(prime)==0: print(-1) else: print(sum(prime)) print(min(prime)) 마찬가지로 2 이상 조건 걸어주고, 각 범위에 대해 반복을 통해 2부터 i-1까지 나눗셈을 통해 약수 여부를 판단합니다. 약수가 하나도 없는 숫자를 소수 집합 prime에 추가하고, 리스트의 길이가 0이라면 -1을, 1 ..
[백준/Python] 2581번: 소수단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 2581번 #2581: 소수 m = int(input()) n = int(input()) prime = [] for i in range(m, n+1): cnt = 0 if i > 1: for j in range(2, i): if i%j==0: cnt += 1 if cnt == 0: prime.append(i) if len(prime)==0: print(-1) else: print(sum(prime)) print(min(prime)) 마찬가지로 2 이상 조건 걸어주고, 각 범위에 대해 반복을 통해 2부터 i-1까지 나눗셈을 통해 약수 여부를 판단합니다. 약수가 하나도 없는 숫자를 소수 집합 prime에 추가하고, 리스트의 길이가 0이라면 -1을, 1 ..
2024.01.30 -
단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 2501번 #2501: 약수 구하기 n, k = map(int, input().split()) divisors = [] for i in range(1,n+1): if n%i==0: divisors.append(i) if k>len(divisors): print(0) else: print(divisors[k-1]) n을 1부터 n까지의 수로 나누었을 때 나머지가 0인 i들만 약수 리스트에 저장합니다. 출력 시 k번째 항목을 출력하는데, 이때 k가 리스트의 길이보다 길면 오류가 뜨므로 이 경우 0을 출력하도록 설정해줍니다.
[백준/Python] 2501번: 약수 구하기단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 2501번 #2501: 약수 구하기 n, k = map(int, input().split()) divisors = [] for i in range(1,n+1): if n%i==0: divisors.append(i) if k>len(divisors): print(0) else: print(divisors[k-1]) n을 1부터 n까지의 수로 나누었을 때 나머지가 0인 i들만 약수 리스트에 저장합니다. 출력 시 k번째 항목을 출력하는데, 이때 k가 리스트의 길이보다 길면 오류가 뜨므로 이 경우 0을 출력하도록 설정해줍니다.
2024.01.30 -
단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 1978번 #1978: 소수 찾기 n = int(input()) prime = [] numbers = map(int, input().split()) for i in numbers: sum = 0 if i > 1: for j in range(2,i): if i%j==0: sum += 1 if sum == 0: prime.append(i) print(len(prime)) 소수란 1과 자기 자신을 제외한 약수가 없는 수를 말합니다. 1은 소수가 아니므로 if 조건문으로 제거해줍니다. 2부터 자기 자산-1까지의 수 중에 약수가 있으면 sum의 개수를 늘립니다. 반복문에서 sum = 0이면 약수가 하나도 없다는 뜻이므로 해당 수를 소수 리스트인 prime에 ..
[백준/Python] 1978번: 소수 찾기단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 1978번 #1978: 소수 찾기 n = int(input()) prime = [] numbers = map(int, input().split()) for i in numbers: sum = 0 if i > 1: for j in range(2,i): if i%j==0: sum += 1 if sum == 0: prime.append(i) print(len(prime)) 소수란 1과 자기 자신을 제외한 약수가 없는 수를 말합니다. 1은 소수가 아니므로 if 조건문으로 제거해줍니다. 2부터 자기 자산-1까지의 수 중에 약수가 있으면 sum의 개수를 늘립니다. 반복문에서 sum = 0이면 약수가 하나도 없다는 뜻이므로 해당 수를 소수 리스트인 prime에 ..
2024.01.30 -
단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 9506번 #9506: 약수들의 합 while True: n = int(input()) if n == -1: break sum = 0 divisors = [] for i in range(1,n): if n%i==0: divisors.append(i) sum += i if sum == n: print(n, "=", end =" ") print(*divisors, sep=" + ") else: print(n,"is NOT perfect.") 마찬가지로 break 조건을 제일 먼저 적어줍니다. 반복문은 본인을 제외한 약수와 그 합을 구하는 것이므로 1부터 n까지로 설정해줍니다. 이후 조건문에서 약수들의 합과 n이 같으면 각 약수들에 대해 덧셈식을 출력하고..
[백준/Python] 9506번: 약수들의 합단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 9506번 #9506: 약수들의 합 while True: n = int(input()) if n == -1: break sum = 0 divisors = [] for i in range(1,n): if n%i==0: divisors.append(i) sum += i if sum == n: print(n, "=", end =" ") print(*divisors, sep=" + ") else: print(n,"is NOT perfect.") 마찬가지로 break 조건을 제일 먼저 적어줍니다. 반복문은 본인을 제외한 약수와 그 합을 구하는 것이므로 1부터 n까지로 설정해줍니다. 이후 조건문에서 약수들의 합과 n이 같으면 각 약수들에 대해 덧셈식을 출력하고..
2024.01.30 -
단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 5086번 #5086: 배수와 약수 while True: a, b = map(int, input().split()) if a==0 and b==0: break elif b%a==0: print("factor") elif a%b==0: print("multiple") else: print("neither") while 조건문 내 a=0, b=0 케이스를 가장 먼저 적어주지 않으면 나눗셈 오류가 납니다. 이후 elif를 통해 각 케이스별로 출력을 적어주도록 합니다.
[백준/Python] 5086번: 배수와 약수단계별로 풀어보기 > 단계 9: 약수, 배수와 소수 > 5086번 #5086: 배수와 약수 while True: a, b = map(int, input().split()) if a==0 and b==0: break elif b%a==0: print("factor") elif a%b==0: print("multiple") else: print("neither") while 조건문 내 a=0, b=0 케이스를 가장 먼저 적어주지 않으면 나눗셈 오류가 납니다. 이후 elif를 통해 각 케이스별로 출력을 적어주도록 합니다.
2024.01.30 -
단계별로 풀어보기 > 단계 8: 일반 수학 > 2869번 #2869: 달팽이 a, b, v = map(int, input().split()) if (v-a) % (a-b) == 0: print((v-b) // (a-b)) else: print(((v-b) // (a-b)) + 1) 달팽이가 하루에 올라가는 높이가 a-b, 달팽이가 총 올라가야 하는 높이가 v-b입니다. 나누었을 때 나머지가 0이 아니면 하루가 더 필요한 것이므로 +1을 해 줍니다. while 문을 사용하면 시간 초과라는 메시지가 뜹니다. 시간을 고려하지 않은 while 반복문은 다음과 같습니다. #시간을 고려하지 않음 a, b, v = map(int, input().split()) count = 0 sum = 0 while True: s..
[백준/Python] 2869번: 달팽이는 올라가고 싶다단계별로 풀어보기 > 단계 8: 일반 수학 > 2869번 #2869: 달팽이 a, b, v = map(int, input().split()) if (v-a) % (a-b) == 0: print((v-b) // (a-b)) else: print(((v-b) // (a-b)) + 1) 달팽이가 하루에 올라가는 높이가 a-b, 달팽이가 총 올라가야 하는 높이가 v-b입니다. 나누었을 때 나머지가 0이 아니면 하루가 더 필요한 것이므로 +1을 해 줍니다. while 문을 사용하면 시간 초과라는 메시지가 뜹니다. 시간을 고려하지 않은 while 반복문은 다음과 같습니다. #시간을 고려하지 않음 a, b, v = map(int, input().split()) count = 0 sum = 0 while True: s..
2024.01.30 -
단계별로 풀어보기 > 단계 8: 일반 수학 > 1193번 #1193: 분수 찾기 n = int(input()) line = 1 while n > line: n -= line line += 1 if line%2==0: deno = line - n + 1 num = n else: num = line - n + 1 deno = n print("%d/%d" %(num, deno)) 규칙을 찾는 데 한참 걸렸습니다. 대각선을 하나의 line으로 봐야 합니다. 각 line에 포함된 분수의 수는 1, 2, 3, 4, 5...로 늘어나고, 각 라인마다 분수가 변화하는 규칙이 다릅니다. n -= line을 하면 각 라인에서 n이 몇 번째에 위치하고 있는지 알 수 있습니다. 홀수 라인에서는 분모가 하나씩 늘고 분자가 하나..
[백준/Python] 1193번: 분수찾기단계별로 풀어보기 > 단계 8: 일반 수학 > 1193번 #1193: 분수 찾기 n = int(input()) line = 1 while n > line: n -= line line += 1 if line%2==0: deno = line - n + 1 num = n else: num = line - n + 1 deno = n print("%d/%d" %(num, deno)) 규칙을 찾는 데 한참 걸렸습니다. 대각선을 하나의 line으로 봐야 합니다. 각 line에 포함된 분수의 수는 1, 2, 3, 4, 5...로 늘어나고, 각 라인마다 분수가 변화하는 규칙이 다릅니다. n -= line을 하면 각 라인에서 n이 몇 번째에 위치하고 있는지 알 수 있습니다. 홀수 라인에서는 분모가 하나씩 늘고 분자가 하나..
2024.01.30