F - 分拆素数和
来源:互联网 发布:怎么申请不了淘宝主播 编辑:程序博客网 时间:2024/06/07 04:02
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>#include<algorithm>#include<cmath>#include<cstdio>using namespace std;int a[11111]={1,1},b[11111]={0};int main(){ __int64 m,i,n,t,j; for(i=2;i<=10010;++i) { if(a[i]==1) { continue; } for(j=2*i;j<=10010;j+=i) { a[j]=1; } } for(i=2;i<=10010;i+=2) { for(j=2;j<=i/2;++j) { if(a[j]==0&&a[i-j]==0&&j!=i-j) { ++b[i]; } } } while(cin>>n,n) { cout<<b[n]<<endl; } return 0;}
0 0
- F - 分拆素数和
- 【分拆素数和】
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- 分拆素数和
- neural-networks-and-deep-learning expand_mnist.py
- 如何使用VS2015编译运行DX11版本龙书配套源码
- 心跳事件总结
- MySQL5.7.13 for window安装过程
- 杭电Problem 5053 the sum of cube 【数学公式】
- F - 分拆素数和
- 游戏开发敏感词屏蔽的功能实现
- hdu 1175连连看
- [2016/7/20][algorithm] Dynamic Programming By CSBreakdown
- 【杭电1208】前m大数
- TCP协议详解
- LCA-RMQ倍增算法【codevs.1036
- hdu5733 tetrahedron (求四面体内切球球心+点面距)
- K-medodis和K-means