m0_73616746 2022-10-04 00:31 采纳率: 66.7%
浏览 27
已结题

一个C语言编程应用举例

输入一个 4 - 1000 之间的偶数 n, 将其分解成两个素数之和。要求写出所有拆解可能,但不要把两个素数换位置的也打印出来。若有多个拆解可能,要求按照第一个加数由小到大的顺序依次输出

  • 写回答

2条回答 默认 最新

  • 爱音斯坦牛 全栈领域优质创作者 2022-10-04 00:51
    关注

    把这个问题分为两步,首先得到<=该偶数的所有素数,然后产生两个素数,判断其和是否满足=偶数。

    #include<stdio.h>
    #include<math.h> //用到开方函数
    int prime(int m)//该函数判断m是否为素数,取一标志位,如果是则返回0,
    {
    int i,flag=1;
    for(i=2;i<=sqrt(m)&&flag==1;i++)
    if(m%i==0)flag=0;
    return flag;
    }
    void main()
    {
    int n,j,k;
    printf("Please enter number:");
    scanf("%d",&n); //输入该偶数
    for(i=2;i<=n-2;i++) //素数是大于1的自然数
    if(prime(i)&&prime(n-i)) //如果两个数都是素数且和等于n,则输出
    printf("%d=%d+%d\n",m,i,m-i);
    }
    

    只能做到这样,目前,这个互换位置的也会输出🙈
    有帮助的话采纳一下哦!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 创建了问题 10月4日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度