F - 分拆素数和
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit
Status
Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30
26
0
Sample Output
3
2
- 题意:将一个偶数分成两个素数之和,问有多少中分法。
- 思路:如果每输入一个偶数都要判断比此偶数小的数是不是素数,偶数与其之差是不是素数;分析可知,这种方法较为繁琐且浪费时间。对于这种处理数据较多且数据都在一定范围之内的题目,则可以选择打表的方法,把相同的数据处理部分放在外面,用几个数组或其他数据结构保存,大大节省了时间。
- 失误:刚开始没有想到用开一个素数表,再根据此素数表打一个次数表。
- 代码如下:
#include<iostream>
#include<cstring>