鱼C论坛

 找回密码
 立即注册
查看: 1770|回复: 1

[已解决]求助大佬

[复制链接]
发表于 2020-11-13 19:25:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
【问题描述】编写素数判断函数int prime(int n)n为素数返回1、否则返回0,并通过调用该函数编程验证歌德巴赫猜想:任何大于2的偶数均可表示为两个素数之和。例如:4=2+2,6=3+3,8=3+5,…,试验证[n,n+10]之间的偶数,每个偶数只需找到一组和式即可,其中n从键盘输入。
【输入形式】输入正整数n。
【输出形式】输出每个偶数的组合(每个数只要显示一对)。
#include<stdio.h>
#include<math.h>
int prime(int m);
void main()
{
        int n,a,m;
        scanf("%d",&n);
        for(a=n;a<=(n+10);a++)
    {
         if(prime(m))               
         {
         printf("%d=%d+%d\n",a,m,a-m);
         }
        }
}

int prime(int m)
{
    int i;
    if(m<2)
    return 0;
        for(i=2;i<=sqrt(m);i++)
        if(m%i==0)
        {
        return 0;
        }
        return 1;
}

请问这样写为什么是错的,谢谢纠正
最佳答案
2020-11-13 20:02:29
void main()
{
        int n,a,m;
        scanf("%d",&n);
        for(a=n;a<=(n+10);a++)
    {
         if(a%2!=0) continue;
          for(m=2;m<=a/2;m++)
         if(prime(m)&&prime(a-m))               
         {
         printf("%d=%d+%d\n",a,m,a-m);
          break;
         }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-13 20:02:29 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
void main()
{
        int n,a,m;
        scanf("%d",&n);
        for(a=n;a<=(n+10);a++)
    {
         if(a%2!=0) continue;
          for(m=2;m<=a/2;m++)
         if(prime(m)&&prime(a-m))               
         {
         printf("%d=%d+%d\n",a,m,a-m);
          break;
         }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 20:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表