c语言 :验证“哥德巴赫猜想”

编程入门 行业动态 更新时间:2024-10-11 19:22:20

c语言 :验证“<a href=https://www.elefans.com/category/jswz/34/1758800.html style=哥德巴赫猜想”"/>

c语言 :验证“哥德巴赫猜想”

描述

数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。

比如:24=5+19,其中5和19都是素数。

设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。

输入

一个偶数N,大于2,且不超过2*10^9

输出

在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。

又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。

例如输入24 输出

24 = 5 + 19

注意p是小的素数,可以利用循环从p=2开始,为了不超时,启用math.h源文件,采用sqrt,int的上限比20亿大所以直接用int类型。

先写个函数判断p是否是素数,如果是判断n-p是否也是素数。直接拿下

#include <stdio.h>
#include <math.h>
int f(int a)
{  int i;
   for(i=2;i<=sqrt(a);i++)
    {
        if(a%i==0)
        break;
        
        
    }
    if(i>=sqrt(a))
    return 1;
    else
    return 0;
    
    
    
    
}
int main(int argc,char *argv[])
{  int n,z,s1,s2;
  scanf("%d",&n);
  for(z=2;z<n;z++)
  {  s1=0;
    s2=0;
  if(f(z)&&f(n-z))
 {s1=z;
  s2=n-z;
  break;
  } 
  
  
      
      
  }
  printf("%d = %d + %d",n,s1,s2);
}

直接ac

更多推荐

c语言 :验证“哥德巴赫猜想”

本文发布于:2024-03-12 07:36:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1731014.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:哥德巴赫   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!