#CYF0055. 最多质数之和

最多质数之和

题目背景

今天小 C 今天发现任何一个大于 11 的正整数都可以描述为多个质数之和,

比如 :

$10 = 2 + 2 + 2 + 2 + 2 = 2 + 3 + 5 = 3 + 3 + 2 + 2 ...$​​ 。

9=3+3+3=5+2+2...9 = 3 + 3 + 3 = 5 + 2 + 2 ...

质数:质数是一类特殊的自然数,它只有两个正因数:11 和它本身。这些数在数学中具有独特的地位,因为它们不能被其他自然数整除(除了 11 和它本身)。例如,23572、3、5、71111​ 都是质数。

因数:因数是指整数 aa 除以整数 b(b0)b(b≠0) 的商正好是整数而没有余数,称 bbaa 的因数, aabb​ 的倍数。因数也被叫做约数。

题目描述

C 现在给你一个正整数 nn ,希望你将 nn​ 尽可能的拆成更多的质数,请问最多可以拆成多少个,并从小到大将拆出来的质数输出。

输入格式

输入一行。

一行输入一个正整数 nn

输出格式

输出两行。

第一行输出一个正整数,代表 nn 能够拆成最多质数的个数。

第二行从小到大输出拆出来的质数。

样例 #1

样例输入 #1

5

样例输出 #1

2
2 3

样例 #2

样例输入 #2

6

样例输出 #2

3
2 2 2

提示

数据范围与提示:

样例解释】:

  • 对于第一组样例,5=2+35 = 2 + 3 ,最多只能拆成这样,所以能拆成 22 个质数,从小到大输出 2 3

  • 对于第二组样例:6=3+3=2+2+26 = 3 + 3 = 2 + 2 + 2 ,最多能拆成 33​ 个质数,从小到大输出 2 2 2

数据范围】:

测试点编号 nn \geq nn \leq
01 ~ 10 22 10310^3
11 ~ 15 10510^5
16 ~ 20 10710^7

对于 100%100\% 的数据,保证 2n1072 \leq n \leq 10^7