把一个偶数拆成两个不同素数的和,有几种拆法呢?

Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30
26
0

Sample Output

3
2

思路:首先用筛法将素数标记,不清楚筛法的可以看我另一篇文章筛法求素数

然后判断满足条件的个数,因为a[i]=i,所以a[i]+a[n-i]=i+n-i=n;

所以只要判断a[i]和a[n-i]是不是同时为素数就行了。代码有点乱,懒得改了

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int main()
{
int i, j, a[10000], n;
a[0] = 0; a[1] = 0;
for (i = 2; i < 10000; i++)
a[i] = 1; //从2开始初值赋1,相当于true
for (i = 2; i < 10000; i++)
{
if (a[i])
for (j = i * 2; j < 10000; j += i)
a[j] = 0; //标记置0
}
int count;
while(cin>>n)
{
if(!n)
return 0;
count=0;
for(int i=3;i<n/2;i++){
if(a[i]&&a[n-i])
count++;
}
printf("%d\n",count);
} return 0;
}

最新文章

  1. Unicode简介
  2. Recovery启动流程(3)--recovery.cpp分析
  3. DC-DC芯片 同步和異步方式有什么區別
  4. (void)(&amp;amp;x==&amp;amp;y)
  5. [模拟Android微信]主界面
  6. VS窗体选择BackGroupImage属性报错:已添加具有相同键的项
  7. React + Redux + express+ antd 架构的认识
  8. 【转载】DHCP流程
  9. sublime 安装package control
  10. SQL Server数据库读写分离提高并发性
  11. linux下udev
  12. 创建Docker私有仓库
  13. 实验吧—隐写术——WP之 我喜欢培根
  14. EVA索赔系统JAVA拦截例外站点
  15. git 客户端连接gitlab 实现简单的CI/CD
  16. K-means算法(理论+opencv实现)
  17. Ionic Js三:下拉刷新
  18. .net使用自定义类属性
  19. Ansible 创建用户 Playbook 脚本
  20. 推断View是否显示在界面上

热门文章

  1. 洛谷—— P1962 斐波那契数列
  2. [Javascript Crocks] Understand the Maybe Data Type
  3. Android 5.0 怎样正确启用isLoggable(二)__原理分析
  4. jQuery必知要点(一)
  5. [Sencha ExtJS &amp;amp; Touch] 在Sencha(Extjs/Touch)应用程序中使用plugins(插件)和mixins(混入)
  6. python+Android+uiautomator的环境
  7. JS禁用右键+禁用Ctrl+u+禁用F12
  8. Ajax的两种实现方式
  9. Design库,所有控件的使用
  10. poj 2135 Farm Tour 【无向图最小费用最大流】