[Beginner Free Contest 38] HAPPYNUM

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python

Số vui vẻ được định nghĩa như sau:

  • Xuất phát từ một số nguyên dương bất kì, ta thay thế số đó bằng tổng bình phương các chữ số của nó.

  • Lặp lại bước trên cho đến khi thu được số ~1~ hoặc rơi vào chu trình vô hạn không chứa số ~1~.

  • Nếu thu được số ~1~ thì số ban đầu là số vui vẻ.

Cho số nguyên dương ~N~. Hãy xác định xem ~N~ có phải là số vui vẻ hay không.

Dữ liệu

  • Dòng đầu tiên chứa số nguyên dương ~T~ ~(T \le 100)~ cho biết số test.

  • ~T~ dòng tiếp theo, mỗi dòng chứa một số nguyên dương ~N~ ~(1 \le N \le 10^6)~.

Kết quả

Với mỗi test, in ra trên một dòng YES nếu ~N~ là số vui vẻ và NO nếu ngược lại.

Ví dụ

Sample Input

2
7
116

Sample Output

YES
NO

Giải thích

  • Test thứ nhất: ~7 \to 49 \to 97 \to 130 \to 10 \to 1~, nên ~7~ là số vui vẻ.

  • Test thứ hai: ~116 \to 38 \to 73 \to 58 \to 89 \to 145 \to 42 \to 20 \to 4 \to 16 \to 37 \to 58 \to \ldots~ rơi vào chu trình ~58 \to 89 \to 145 \to 42 \to 20 \to 4 \to 16 \to 37 \to 58~ không chứa số ~1~, nên ~116~ không phải là số vui vẻ.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.