主题:[讨论]2道程序题~~~大家给点思路
1.Description
欧拉证明了素数有无穷多个这一经典数学理论。但是每个整数能表示成四个素数之和吗?希望你能帮我们高效地解决这一问题。在这个问题中,素数的定义为“一个素数是指一个正整数,且该正整数有且只有两个不同的因子”。例如37是一个素数,因为它只有两个不同的因子37和1。
Input
输入文件中包含多个测试数据。每个测试数据占一行,为一个正整数N(0<N<=10000000),这个数就是你需要把它表示成四个素数之和的数。N=0表示输入结束。
Output
对输入文件中的每个测试数据,如果N能表示成四个素数之和,则输出字典序最小的一个组合,例如,40可以分解成3+7+13+17,也可分解成5+7+11+17,还可以分解成2+2+5+31等等,其中字典序最小的是最后一个组合。如果这个数不能表示为四个素数之和,那么输出一行"Impossible"。
Sample Input
40
27
0
Sample Output
2 2 5 31
2 3 3 19
2.你知道什么是骰子吗?骰子是一个六面立方体,每一面对应一到六的数字,并且在每个面上用相应的点表示数字。
游戏开始时,骰子平稳的放在桌上,游戏中,骰子可由庄家决定向任何方向滚动。如果你能猜出骰子停止滚动时朝上面的数字,你就赢了。
现在要求你编写一道程序来模拟骰子的滚动。为了简单起见,我们假设骰子既不滑动也不会跳动,只在桌子上向四个方向滚动,即东南西北。当游戏开始时,庄家都把骰子放在桌子中央并使它的一、二、三分别对应上、北和西。对于另外的三个面,可以通过一条规则计算出来:任何相对的两面的和都等于七。
你的程序应能接受一系列的输入命令,任何一条命令应是"north"、"east"、"south"或"west"之一。“北”命令即指骰子滚向北面,也就是说,朝向上的面成为了新的北面,而原来的北面则成为了新的底。其它命令也相应地使骰子滚向对应的方向。你的程序必须算出骰子经过一系列滚动后面朝上的数字。设桌子足够大,骰子永远不会掉下
欧拉证明了素数有无穷多个这一经典数学理论。但是每个整数能表示成四个素数之和吗?希望你能帮我们高效地解决这一问题。在这个问题中,素数的定义为“一个素数是指一个正整数,且该正整数有且只有两个不同的因子”。例如37是一个素数,因为它只有两个不同的因子37和1。
Input
输入文件中包含多个测试数据。每个测试数据占一行,为一个正整数N(0<N<=10000000),这个数就是你需要把它表示成四个素数之和的数。N=0表示输入结束。
Output
对输入文件中的每个测试数据,如果N能表示成四个素数之和,则输出字典序最小的一个组合,例如,40可以分解成3+7+13+17,也可分解成5+7+11+17,还可以分解成2+2+5+31等等,其中字典序最小的是最后一个组合。如果这个数不能表示为四个素数之和,那么输出一行"Impossible"。
Sample Input
40
27
0
Sample Output
2 2 5 31
2 3 3 19
2.你知道什么是骰子吗?骰子是一个六面立方体,每一面对应一到六的数字,并且在每个面上用相应的点表示数字。
游戏开始时,骰子平稳的放在桌上,游戏中,骰子可由庄家决定向任何方向滚动。如果你能猜出骰子停止滚动时朝上面的数字,你就赢了。
现在要求你编写一道程序来模拟骰子的滚动。为了简单起见,我们假设骰子既不滑动也不会跳动,只在桌子上向四个方向滚动,即东南西北。当游戏开始时,庄家都把骰子放在桌子中央并使它的一、二、三分别对应上、北和西。对于另外的三个面,可以通过一条规则计算出来:任何相对的两面的和都等于七。
你的程序应能接受一系列的输入命令,任何一条命令应是"north"、"east"、"south"或"west"之一。“北”命令即指骰子滚向北面,也就是说,朝向上的面成为了新的北面,而原来的北面则成为了新的底。其它命令也相应地使骰子滚向对应的方向。你的程序必须算出骰子经过一系列滚动后面朝上的数字。设桌子足够大,骰子永远不会掉下