문제
[약수의 개수가 3개인 수]
주어지는 두 수(start, end)에 대해서, start 이상, end 이하의 숫자 중에 약수가 3개인 숫자의 개수를 구하는 코드를 작성해보세요.
입력 형식
첫 번째 줄에 start, end가 공백을 사이에 두고 주어집니다.
- 1 ≤ start ≤ end ≤ 1000
출력 형식
약수가 3개인 숫자의 개수를 출력합니다.
Constraints:
시간 제한: 1000ms
메모리 제한: 80MB
입출력 예제
예제 1
입력:
3 7
출력:
1
➡ 설명
3의 약수의 개수 : 2개 (1, 3)
4의 약수의 개수 : 3개 (1, 2, 4)
5의 약수의 개수 : 2개 (1, 5)
6의 약수의 개수 : 4개 (1, 2, 3, 6)
7의 약수의 개수 : 2개 (1, 7)
따라서 약수가 3개인 건 1개입니다.
풀이과정
이건 뭐.. 너무 쉽다..
그냥 큰 for 문으로 start~end까지의 숫자를 하나씩 탐색한다
- 탐색: 1을 제외한 그 숫자보다 작은 수들을 모두 나눠서 나눠지는게 있는지 확인한다
나는 어짜피 1과 탐색하는 숫자 자체는 나눠지니 이들은 제외했당
overview
디버깅 과정을 보고싶다면 이 동영상을 참고해보자!!
코드
start, end = tuple(map(int, input().split()))
answer=0
for i in range(start,end+1):
count = 0
for j in range(2,i):
if i%j==0:
count+=1
if count==1:
answer+=1
print(answer)
결과
쨔쨘