{"trustable":false,"sections":[{"title":"","value":{"format":"HTML","content":"正整数可以以一种或另一种方式表示为不同素数(素数)的总和。给定两个正整数n和k,您应该计算将n表示为k 个不同素数之和的方法数。这里,如果两种方式求和相同的素数集,则认为它们是相同的。例如,8 可以表示为 3 + 5 和 5 + 3 但不区分。\n\n当n和k分别为 24 和 3 时,答案是 2,因为有两个集合 {2, 3, 19} 和 {2, 5, 17} 的和等于 24。 没有其他三个素数的集合总和为 24。对于n \u003d 24 和k \u003d 2,答案是三个,因为有 {5, 19}、{7, 17} 和 {11, 13} 三个集合。对于n \u003d 2 和k \u003d 1,答案是 1,因为只有一个集合 {2} 的和为 2。对于n \u003d 1 和k \u003d 1,答案是零。由于 1 不是素数,因此您不应计算 {1}。对于n \u003d 4 和k \u003d 2,答案为零,因为不存在总和为 4 的两个不同素数的集合。\n\n您的工作是编写一个程序,报告给定n和k的此类方法的数量。\n"}},{"title":"Input","value":{"format":"HTML","content":"输入是一系列数据集,后跟包含两个由空格分隔的零的行。数据集是包含两个由空格分隔的正整数n和k的行。您可以假设n ≤ 1120 且k ≤ 14。"}},{"title":"Output","value":{"format":"HTML","content":"输出应由行组成,每行对应一个输入数据集。输出行应包含一个非负整数,表示在相应数据集中指定的n和k的路数。您可以假设它小于 2 31。"}},{"title":"Sample Input","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003e24 3 \n24 2 \n2 1 \n1 1 \n4 2 \n18 3 \n17 1 \n17 3 \n17 4 \n100 5 \n1000 10 \n1120 14 \n0 0\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003e2 \n3 \n1 \n0 \n0 \n2 \n1 \n0 \n1 \n55 \n200102899 \n2079324314\u003c/pre\u003e"}}]}