Dear people, i have a exercise, so i want to you solve it. you must code by C++ langguage now, read the exercise below:
Peter has just found a definition of *clear numbers* as the following: for each positive integer n, we form another number by summing the squares of the digits of n. We repeat this procedure. If at some step, we obtain the number 1 then n is called a *clear number*. For example, for n=19, we have: 19 → 82 (= 12 +92) → 68 → 100 → 1 Thus, 19 is a clear number. Not all numbers are clear numbers. For example, for n=12, we have: 12 → 5 → 25 → 29 → 85 → 89 → 145 → 42 → 20 → 4 → 16 → 37 → 58 → 89 → 145 Peter is very interested in this definition of clear numbers. He issued a challenge to the landlord: given a positive integer n, find S(n), the clear number succeeding n, i.e. S(n) is the minimum clear number greater than n. However, this question is so easy for the landlord that he challenged Peter with another problem: given two positive integers n and m (1 ≤ n, m ≤ 1015), find the number Sm(n)=S(S(…S(n) )) which is the mth clear number succeeding n. Please help Peter to solve the task! Input The first line contains t (0 < t ≤ 20) , the number of test cases. Each line in the next t lines contains two positive integers n and m. Output Print t lines, each line contains the result of the corresponding test case. Example *Input* 2 18 1 1 145674807 *Output* 19 1000000000 Notes There are 50% of the test cases in which 1 ≤ n, m ≤ 107. -- Regard! Khanh --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "google-codejam" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-code?hl=en -~----------~----~----~----~------~----~------~--~---
