训练1-J
2024-08-31 08:16:50
把一个偶数拆成两个不同素数的和,有几种拆法呢?
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;
}
最新文章
- Unicode简介
- Recovery启动流程(3)--recovery.cpp分析
- DC-DC芯片 同步和異步方式有什么區別
- (void)(&;amp;x==&;amp;y)
- [模拟Android微信]主界面
- VS窗体选择BackGroupImage属性报错:已添加具有相同键的项
- React + Redux + express+ antd 架构的认识
- 【转载】DHCP流程
- sublime 安装package control
- SQL Server数据库读写分离提高并发性
- linux下udev
- 创建Docker私有仓库
- 实验吧—隐写术——WP之 我喜欢培根
- EVA索赔系统JAVA拦截例外站点
- git 客户端连接gitlab 实现简单的CI/CD
- K-means算法(理论+opencv实现)
- Ionic Js三:下拉刷新
- .net使用自定义类属性
- Ansible 创建用户 Playbook 脚本
- 推断View是否显示在界面上
热门文章
- 洛谷—— P1962 斐波那契数列
- [Javascript Crocks] Understand the Maybe Data Type
- Android 5.0 怎样正确启用isLoggable(二)__原理分析
- jQuery必知要点(一)
- [Sencha ExtJS &;amp; Touch] 在Sencha(Extjs/Touch)应用程序中使用plugins(插件)和mixins(混入)
- python+Android+uiautomator的环境
- JS禁用右键+禁用Ctrl+u+禁用F12
- Ajax的两种实现方式
- Design库,所有控件的使用
- poj 2135 Farm Tour 【无向图最小费用最大流】