hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)
2024-09-28 12:56:23
传送门:
http://acm.hdu.edu.cn/showproblem.php?pid=2098
分拆素数和
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 46434 Accepted Submission(s): 20210
Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30
26
0
26
0
Sample Output
3
2
2
Source
分析:
偶数可以对半开,所以外面只需要判断偶数的一半有多少种拆分方法就可以了
因为后面的一半和前面的一半是重复的
比如30拆分:13和17 17和13
是同一个拆分
注意特殊情况
26
26/2=13
13是素数
所以计算变量需要减1
code:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int f(int x)//判断素数
{
if(x==)
return ;
for(int i=;i<=sqrt(x);i++)
{
if(x%i==)
return ;
}
return ;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
if(n==)
break;
n=n/;//偶数对半开
int c=;
for(int i=;i<=n;i++)//一个数
{
int j=*n-i;//另一个数 二者之间是和的关系
if(f(i)==&&f(j)==)
{
c++;//都是素数计算器加一
}
}
if(f(n)==)//特殊情况 比如 13 13
c--;
printf("%d\n",c);
}
return ;
}
最新文章
- 深入理解CSS3 Animation 帧动画
- CYQ.Data 批量添加数据性能测试(每秒千、万)
- 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。
- POJ1703Find them, Catch them
- mysql事件
- java.net.BindException: Address already in use: bind
- C#文本文件或其他文件新内容追加
- [C#参考]UI和线程(一)
- linux下expect命令实现批量ssh免密
- 下篇: php 微商城 基于Thinkphp3.2框架开发
- 原生JS封装时间运动函数
- 能不能在FOR循环中执行SQL?
- Confluence 6 链接到其他应用
- IniHelper
- MII、GMII、RMII、SGMII、XGMII 接口区别
- hdu1358 Period kmp求循环节
- Linux配置Python默认版本
- 项目总结14:Windows远程连接redis(cmd指令或PowerShell指令)
- 集成maven和Spring boot的profile功能
- 微信小程序——button, swiper等默认样式更改
热门文章
- javaweb带属性的自定义标签
- int btn = (Button) findViewById(View.getId());
- @media print样式 关于table断页
- IOC和DI到底是什么?
- 关于Sychronized和volatile自己总结的一点点理解(草稿)
- Safari无痕模式下,storage被禁用问题
- BZOJ3498: PA2009 Cakes(三元环)
- 教你小三角,适用移动端等,解决移动端a标签的默认样式
- Python爬虫教程-25-数据提取-BeautifulSoup4(三)
- PHP 调用web service接口(.net开发的接口)