만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

일이 너무 많아...

시간 제한1.111초메모리 제한1111 MB

요약
1부터 N까지의 정수 중 11, 111, 1111 등 두 자리 이상의 1로만 이루어진 수를 약수로 갖는 수의 개수를 구합니다.
난이도

보통10점 중 6점

유형
정수론, 조합론, 완전 탐색
정답자
아직 제출이 없습니다

문제

카카오_지갑_로고

카카오에 7년 경력을 가진 신입 개발자로 입사한 pichulia는 카카오 서비스 중 카카오 지갑 서비스의 개발 담당자가 되었다.

카카오 지갑은 사용자가 소유한 디지털 자산과 아이템을 담아 두는 곳이다. 본인 확인을 거쳐 이용할 수 있는 카카오의 다양한 서비스를 모아 볼 수 있는 공간이기도 하다.

카카오 지갑이 제공하는 서비스는 매우 다양하다. 우선 '카카오 인증서'로 각종 금융기관과 연동하는 서비스를 지원한다. 다음으로 '톡명함'으로 나를 돋보이게 만드는 명함을 만들 수 있고, 이 명함을 이용해 개발자 커뮤니티 등 나를 필요로 하는 사람들과 소통할 수 있다. 게다가 '지갑 QR'을 이용한 무인 매장 이용 서비스도 지원한다. 이 밖에도 많은 서비스를 제공하고 있다.

사용자 입장에서는 진짜 지갑처럼 매우 유용하게 쓸 수 있을 것이다. 하지만 개발자 입장에서는 이 모든 것이 정상적으로 돌아가도록 관리해야 하기 때문에 pichulia는 언제나 일이 많다.

일이 하나만 있는 것도 힘든데, 이렇게 일이 여러 개 있다... ㅠㅜ

그래서 pichulia는 1111, 111111, 11111111, ⋯\cdots 와 같이 2개 이상의 숫자 11로만 이루어진 수를 싫어한다. 게다가 이런 수를 약수로 가진 수도 싫어한다.

양의 정수 NN이 주어졌을 때, 11 이상 NN 이하의 정수 중 pichulia가 싫어하는 수의 개수를 구하라. pichulia는 위에 서술된 특징을 가진 정수를 제외한 모든 수를 싫어하지 않는다고 가정한다.

입력

첫 번째 줄에 문제에서 정의된 정수 NN이 주어진다. (1≤N≤10181 \le N \le 10^{18})

출력

11 이상 NN 이하의 정수 중 2개 이상의 숫자 11로만 이루어진 수를 약수로 가지는 수의 개수를 출력한다.

예제3

  1. 예제 1

    입력
    111
    
    예상 출력
    11
    
  2. 예제 2

    입력
    111111111
    
    예상 출력
    11020111
    
  3. 예제 3

    입력
    1000000000000000000
    
    예상 출력
    99180991810801810