반응형
Notice
Recent Posts
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

500error

[Cos Pro 1급, Python] 4차 10번 : 소수의 세제곱이 몇개가 있나요 본문

알고리즘/파이썬

[Cos Pro 1급, Python] 4차 10번 : 소수의 세제곱이 몇개가 있나요

Internal Server Error 2024. 2. 29. 21:29
반응형

문제

자연수를 제곱한 수는 제곱수, 세 제곱한 수는 세제곱 수라고 합니다. 예를 들어 2^2 = 4 는 제곱수, 3^3 = 27은 세제곱수 입니다.
두 자연수 a, b가 주어질 때 a 이상 b 이하인 자연수 중 소수의 제곱수와 세제곱수의 개수를 구하려 합니다. 예를 들어 a = 6, b = 30일 때 소수의 제곱수는 [9, 25]로 2개, 소수의 세제곱수는 [8, 27]로 2개로 총 4개입니다.
두 자연수 a, b가 매개변수로 주어질 때, a 이상 b 이하인 제곱수와 세제곱수의 개수의 합을 return 하도록 solution 함수를 완성해주세요.

 

 

 

 

 

 

 

 

 

 

 

코드

def get_prime(n) :
	primes = [2]
	for i in range(3, n + 1, 2) :
		is_prime = True
		for j in range(2, i) :
			if i % j == 0 :
				is_prime = False
				break
		if is_prime :
			primes.append(i)
	return primes


def solution(a, b):
	answer = 0
	primes = get_prime(b)
	for i in primes:
		now = pow(i, 2)
		if a < now < b :
			answer += 1
			
	for i in primes :
		now = pow(i, 3)
		if a < now < b :
			answer += 1
	return answer



a =  6
b =  30
ret = solution(a, b)

print("solution 함수의 반환 값은", ret, "입니다.")
반응형
Comments