组成一个偶数最接近的两个素数

题目描述

任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对 


  1. bool isprime(int a)
  2. {
  3.   for(int i=2; i<=sqrt(a); i++)
  4.     if(a%i==0) return false;
  5.     return true;
  6. }  
  7. int main()
  8. {
  9.     int n;
  10.     int prime1,prime2;   
  11.      while(cin>>n)   
  12.      {  
  13.        if(n<2)  return 1;
  14.        else
  15.        {
  16.          for(int i=1; i<=n/2; i++)
  1.           {
  2.             if(isprime(i) && isprime(n-i))
  3.               {
  4.                 prime1 = i;
  5.                 prime2 = n-i;   
  6.               } 
  7.             }
  8.          cout<<prime1<<" "<<prime2<<endl;
  9.         }  
  10.   }    
  11.      return 0;
  12. }




********附:与整数相邻最近的素数,并输出距离*********************
输入:
3
6
8
10
输出:
5 1
7 1
11 1

【代码】

  1. bool isprime(int a)
  2. {
  3.   for(int i=2; i<=sqrt(a); i++)
  4.     if(a%i==0) return false;
  5.     return true;
  6. }  
  7. int main()
  8. {
  9.    int num;
  10.    for(int i=num; !isprime(i); i--);
  11.    for(int j=num; !isprime(j); j++);
  12.  
  13.      if( (num-i) <= (j-num))              //注意条件
  14.            cout<<i<<" "<<num-i<<endl;
  15.     else  
  16.            cout<<j<<" "<<j-num<<endl;
  17.  
  18.  return 0;
  19. }





















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屠变恶龙之人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值