Tweetuzki 爱等差数列
题目描述
Tweetuzki 特别喜欢等差数列。尤其是公差为 1 1 1 且全为正整数的等差数列。
显然,对于每一个数 s s s,都能找到一个对应的公差为 1 1 1 且全为正整数的等差数列各项之和为 s s s。这时,Tweetuzki 想知道,满足这样条件的等差数列,最小的首项是多少。
由于 Tweetuzki 的数学非常差,尤其是因式分解,所以请你告诉他结果。
输入格式
输入仅包含一行一个整数 s s s ( 1 ≤ s ≤ 1 0 12 ) (1 \le s \le 10^{12}) (1≤s≤1012).
输出格式
输出两个正整数,分别表示这个等差数列的首项和末项。请注意输出最小的首项。
样例 #1
样例输入 #1
9
样例输出 #1
2 4
样例 #2
样例输入 #2
16
样例输出 #2
16 16
样例 #3
样例输入 #3
1000000007
样例输出 #3
500000003 500000004
提示
样例解释 1
2 + 3 + 4 = 9 2 + 3 + 4 = 9 2+3+4=9
样例解释 2
16 = 16 16 = 16 16=16
数据范围
对于
10
%
10\%
10% 的数据,
s
≤
1
0
6
s \le 10^6
s≤106。
对于
100
%
100\%
100% 的数据,
1
≤
s
≤
1
0
12
1 \le s \le 10^{12}
1≤s≤1012。
提示
若有一个数列 a a a,每一项 a i a_i ai 都满足 a i ∈ N + a_i \in \mathbb{N_{+}} ai∈N+ 且 a i − a i − 1 = a i + 1 − a i = 1 a_i - a_{i - 1} = a_{i + 1} - a_i = 1 ai−ai−1=ai+1−ai=1,则称这个数列为一个公差为 1 1 1 且全为正整数的等差数列。
Scratch实现
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容