袋鼠赢家
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

山西第一届“三晋七校 ACM 队纳新联赛”正在火热进行中!

来自中北大学、山西大学、太原理工大学、山西财经大学、太原科技大学、山西工程科技职业大学、山西工商学院的选手们同场竞技。

传说中,两位出题人 CWB TJH 设计了一道神秘的数学题,只有真正的“袋鼠赢家”才能解开它。



给定一个正整数 k 。

考虑所有满足 i,j \ge 1 的正整数对(i,j),当 (i \neq j) 时, (i,j)(j,i) 被视为不同的数对。

将所有这样的数对乘积平方 p=(i \times j)^2 按从小到大排序的顺序排列,得到一个无限多重集 S

请你求出多重集 Sk 小元素之和,并对998244353 取模的结果。

多重集定义:一个可以包含重复元素的无序集合。

输入描述:

一个整数 k \ (1 \leq k \leq 10^{12})

输出描述:

输出一个整数,表示集合 S 中前 k 小元素的和,结果对 998244353 取模。
示例1

输入

复制
5

输出

复制
27

说明

多重集 S 升序排序后前 8 个数分别是({1,4,4,9,9,16,16,16}) 前 5 小之和是 1+4+4+9 +9=27 。
示例2

输入

复制
1024

输出

复制
13783217

备注: