QUESTION:
You are given a positive integer n, that is initially placed on a board. Every day, for 109 days, you perform the following procedure:
For each number x present on the board, find all numbers 1 <= i <= n such that x % i == 1. Then, place those numbers on the board. Return the number of distinct integers present on the board after 109 days have elapsed.
Note:
Once a number is placed on the board, it will remain on it until the end. % stands for the modulo operation. For example, 14 % 3 is 2.
Example 1:
Input: n = 5
Output: 4
Explanation: Initially, 5 is present on the board.
The next day, 2 and 4 will be added since 5 % 2 == 1 and 5 % 4 == 1.
After that day, 3 will be added to the board because 4 % 3 == 1.
At the end of a billion days, the distinct numbers on the board will be 2, 3, 4, and 5.
Example 2:
Input: n = 3
Output: 2
Explanation:
Since 3 % 2 == 1, 2 will be added to the board.
After a billion days, the only two distinct numbers on the board are 2 and 3.
Constraints:
1 <= n <= 100
EXPLANATION:
这其实是一道数学题.
首先,第一天我们肯定可以得到n
第二天, 我们可以得到n-1, 因为 n % (n-1) = 1
第三天, 我们可以得到n-2, 因为前一天我们已经得到了n-1, 那么(n-1)%(n-2) = 1
按这个逻辑下去, 在n天之后, 我们一定可以得到2 -> n的所有数.
SOLUTION:
class Solution {
func distinctIntegers(_ n: Int) -> Int {
return max(n-1, 1)
}
}