아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

꽤 좋은 수

시간 제한1초메모리 제한128 MB

요약
각 구간에서 진약수 합과 수의 차이 절댓값이 허용 한도 이하인 정수를 셉니다.
난이도

보통10점 중 5점

유형
정수론, 정렬, 누적 합
정답자
아직 제출이 없습니다

문제

완전수는 자기 자신을 제외한 약수의 합이 자기 자신과 같은 자연수이다. 6의 약수는 1, 2, 3이고 1+2+3 = 6이므로 6은 완전수이다. 28도 1+2+4+7+14 = 28이므로 완전수이다.

자연수의 나쁨은 자기 자신을 제외한 약수의 합과 자기 자신의 차이, 곧 두 값의 차의 절댓값이다. 10의 나쁨은 ∣(1+2+5)−10∣=2|(1+2+5) - 10| = 2이고, 20의 나쁨은 ∣(1+2+4+5+10)−20∣=2|(1+2+4+5+10) - 20| = 2이다.

꽤 좋은 수는 나쁨이 정해진 한계를 넘지 않는 수이다. 나쁨을 2까지 허용하면 100보다 작은 수 중 꽤 좋은 수는 2, 3, 4, 6, 8, 10, 16, 20, 28, 32, 64로 모두 11개이다. 이 한계를 0으로 두면 완전수의 정의와 같아진다.

허용하는 나쁨의 최댓값과 구간이 주어질 때, 그 구간에 꽤 좋은 수가 몇 개 있는지 세는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄이고, 세 정수 start, stop, badness가 공백으로 구분되어 주어진다.

  • 2≤start<10000002 \le \text{start} < 1000000
  • start≤stop<1000000\text{start} \le \text{stop} < 1000000
  • 0≤badness<10000 \le \text{badness} < 1000

마지막 줄에는 0이 세 개 주어진다. 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 Test i: c 형식으로 한 줄씩 출력한다. i는 1부터 세는 테스트 케이스 번호이고, c는 start≤n≤stop\text{start} \le n \le \text{stop}을 만족하는 자연수 n 중 나쁨이 badness 이하인 수의 개수이다. start와 stop도 구간에 들어간다.

예제1

  1. 예제 1

    입력
    2 100 2
    2 100 0
    1000 9999 3
    0 0 0
    
    예상 출력
    Test 1: 11
    Test 2: 2
    Test 3: 6