• Home
  • About
    • Yerim Oh photo

      Yerim Oh

      Happy and worthwhile day by day :)

    • Learn More
    • Email
    • LinkedIn
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
  • Projects

[1013] (파이썬) CODE TREE_Lv.2 Intermediate Low: 약수의 개수가 3개인 수

18 Jan 2020

Reading time ~1 minute

Table of Contents
  • 문제
    • 입력 형식
    • 출력 형식
    • 입출력 예제
  • 풀이과정
    • overview
  • 코드
  • 결과

문제

[약수의 개수가 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

디버깅 과정을 보고싶다면 이 동영상을 참고해보자!!
123123


코드

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)

결과

image 쨔쨘



Coding test Share Tweet +1