만드는 중입니다

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

마법 버섯

면접 대비

시간 제한2초메모리 제한1024 MB

요약
주어진 N개의 수마다 피보나치 수열(1, 1, 2, 3, 5, ...)에 속하는지 판별하여 Yes 또는 No를 출력합니다.
난이도

보통10점 중 5점

유형
수학, 정수론
정답자
아직 제출이 없습니다

문제

루크 행성에는 작은 요정들의 대기업이 있다. 이 기업의 요정들은 오랜 세월 마법 버섯 밭을 가꿔 왔다. 기업이 생긴 첫날부터 요정들은 매일 새 밭을 하나씩 만든다. 새 밭을 만든 뒤 이틀 동안은 버섯의 포자를 채취할 수 있고, 그 뒤로는 밭에서 버섯만 나온다.

ii일째에 만든 밭에 심긴 버섯의 수를 cic_i라고 하면, ci=ci−1+ci−2c_i = c_{i-1} + c_{i-2}로 계산된다. 첫째 날과 둘째 날에는 각각 1개, 셋째 날에는 2개, 넷째 날에는 3개, 다섯째 날에는 5개를 심었다. 이후에도 같은 방식으로 이어진다.

마법 버섯은 여행자가 루크 행성에서 가져갈 수 있는 가장 값진 기념품이다. 그래서 방문객은 누구나 먼저 마법 버섯 밭을 찾는다. 그런데 최근 가짜 마법 버섯에 대한 신고가 늘고 있다. 조사 결과 배후는 큰 요정들의 작은 기업이었다. 이 기업은 겉보기에는 구별되지 않지만 훨씬 가치가 떨어지는 버섯 밭을 만든다. 밭을 만들 때마다 경쟁 기업이 한 번도 심은 적이 없고 앞으로도 심을 수 없는 수만큼 버섯을 심는다.

밭에 심긴 버섯의 수가 주어졌을 때, 그 밭이 마법 밭인지 판별하는 프로그램을 작성하시오.

입력

첫 줄에 조사할 밭의 개수 NN (1≤N≤1,000,0001 \le N \le 1,000,000)이 주어진다. 다음 NN개의 줄에는 조사할 밭에 심긴 버섯의 수 aia_i가 한 줄에 하나씩 주어진다. 입력 파일의 크기는 1MB를 넘지 않는다.

출력

입력에 주어진 각 수에 대해, 그 수의 버섯이 심긴 밭이 마법 밭이면 Yes, 아니면 No를 출력하라. 답은 줄바꿈으로 구분한다.

예제1

  1. 예제 1

    입력
    8
    1
    2
    3
    4
    5
    6
    7
    8
    
    예상 출력
    Yes
    Yes
    Yes
    No
    Yes
    No
    No
    Yes