HDU-1262,寻找素数对(素数打表)

简介: HDU-1262,寻找素数对(素数打表)

Problem Description:


哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.

做好了这件实事,就能说明这个猜想是成立的.

由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.  


Input:


输入中是一些偶整数M(5<M<=10000).


Output:


对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数.


Sample Input:


20 30 40


Sample Output:


7 13

13 17

17 23


解题思路:


在judge()函数中打出一张1到10000以内的素数表。prime[i]=1表示数i为素数,反之不是。然后再在main()中从接近输入n/2的数开始渐进寻找即可!


程序代码:


#include<bits/stdc++.h>
using namespace std;
const int MAXN=10000;
int prime[MAXN+1];
void judge()//找出1到10000中间所有的素数 
{
  memset(prime,0,sizeof(prime));//数组清零 
  int a,flag;
  for(int i=2;i<=MAXN;i++)//打表 
  {
    a=i/2;//一个数不会有大于它自身一半的因子,所以这里可以节省时间 
    flag=1;//标记变量 
    for(int j=2;j<=a;j++)//从2到自身的一半 
    {
      if(i%j==0)//不是素数 
      {
        flag=0;
        break;
      }
    }
    if(flag)
      prime[i]=1;//这个数是素数,数组标记为1 
  }
}
int main()
{
  judge();
  int n,t;
  while(cin>>n)
  {
    t=n/2;
    while(t>=2)
    {
      if(prime[t]&&prime[n-t])
      {
        cout<<t<<" "<<n-t<<endl;
        break;
      }
      t--;
    }
  }
  return 0;
}


相关文章
|
C# 数据安全/隐私保护
【WPF】右下角弹出自定义通知样式(Notification)——简单教程
原文:【WPF】右下角弹出自定义通知样式(Notification)——简单教程 1.先看效果 2.实现 1.主界面是MainWindow 上面就只摆放一个Button即可。
3449 1
|
Docker 容器
docker中端口映射
【10月更文挑战第7天】
910 65
|
Windows
R语言有状态依赖强度的非线性、多变量跳跃扩散过程模型似然推断分析股票价格波动
R语言有状态依赖强度的非线性、多变量跳跃扩散过程模型似然推断分析股票价格波动
|
存储 安全 数据可视化
带你读《Elastic Stack 实战手册》之50:——3.5.9.Space (上)
带你读《Elastic Stack 实战手册》之50:——3.5.9.Space (上)
171 0
|
数据处理 数据库 C语言
捋一捋Python的文件处理(上)
正式的Python专栏第34篇,同学站住,别错过这个从0开始的文章!
236 0
捋一捋Python的文件处理(上)
|
云安全 运维 安全
阿里云推6大安全解决方案 护航金融机构推进服务线上化
阿里云推6大安全解决方案 护航金融机构推进服务线上化
阿里云推6大安全解决方案 护航金融机构推进服务线上化
|
PHP
跟我一起学PHP从基础开始(一)
跟我一起学PHP从基础开始(一)
162 0
|
人工智能 供应链 监控
生产企业如何快速实现疫情防控与复工复产
新型冠状病毒肺炎疫情是一个严重的突发事件,它与恐怖袭击和自然灾害不一样,更不同于一般的供应链和企业中断事件。它将较长时间影响全国和全球的经济运营活动,在一段时间内阻断了人流、交通流与物流,并直接影响到劳动力就岗。因而,我们必须要结合疫情的发展规律,使用管理科学与系统工程方法,对生产企业的疫情防控与复工复产进行统筹管理和精准科学决策。
1484 0
生产企业如何快速实现疫情防控与复工复产