java哥验证德巴赫猜想,C语言验证哥德巴赫猜想

news/2024/7/8 8:02:01

你好,用几个Sample Input试了一下你提供的代码,都可以得出一组正确答案,代码的问题在于不能输出全部符合猜想的数字组合,下面做出说明:

#include

#include

int main( )

{

long int j,n,p,q,flagp,flagq;//定义整型即可满足题意

printf("please input n :");

scanf("%ld",&n );

if (((n%2)!=0)||(n<=4))

printf("input data error!\n");

else

{ p=1;

do {

p=p+1;

q=n-p;

flagp=1;

for(j=2;j<=(int)(sqrt(p));j++)

{

if ((p%j)==0)

{

flagp=0;

break;

}

}

flagq=1;

for(j=2;j<=(int)(sqrt(q));j++)

{

if(q%j==0)

{

flagq=0;

break;

}

}

/*此处没有必要运用两组for循环分别判断是否满足素数,

当第一个数p不满足素数时,仍对原有的q进行了不必要的判断,冗杂繁复,

将两个数的素数判断都置于一个for循环中即可*/

} while(flagp*flagq==0);

//当有一组数字满足条件时,flagp*flagq==1,即跳出while循环,无法输出所有组合

printf("%d %d\n",p,q);

}

return 0;

}

现给出修改建议

#include

#include

int sushu(int x) //定义一个函数,判断一个数是否是素数

{

int flag=0,a,i;

a=(int)sqrt(x);

for(i=2;i<=a;i++) {

if(x%i==0)

flag=1;

}

return flag;

} //如果是素数,函数返回值为0,非素数返回值为1

int main()

{

int n,i,j,num1,num2;//n为输入的偶数,i,j为参与循环测试的数,num1,num2为判断是否满足条件的参数

printf("please input n :");

scanf("%ld",&n );

if (((n%2)!=0)||(n<=4))

printf("input data error!\n");

else

{

for(i=3;i<=n/2;i=i+2)//循环至 n/2即可,满足输出时小的素数在前(从最小的素数3开始循环)

{

num1=0;

num2=0;

num1=sushu(i); //调用函数给参数赋值

if(num1==0) //第一个数满足素数条件时,进行第二个数的素数判断

{

j=n-i;

num2=sushu(j);

}

if(num1==0 && num2==0)//两个数都满足素数,即输出一组数

printf("%d %d\n",i,j);

}

}

return 0;

}

望采纳,欢迎追问~


http://www.niftyadmin.cn/n/4002399.html

相关文章

新概念英语第三册 阅读

新概念英语第三册 Lesson1 A puma at large Pumas are large, cat-like animals which are found in America. When reports came into London Zoo that a wild puma had been spotted forty-five miles south of London, they were not taken seriously. However, as the e…

css php 源代码,如何使用纯CSS实现一块乐高积木(附源码)

本篇文章给大家带来的内容是关于php在web服务器上的运行模式详解&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。效果预览源代码下载https://github.com/comehope/front-end-daily-challenges代码解读定义 dom&#xff0c;容…

在linux机器上面安装anaconda和相关软件

直接安装anaconda参考这里&#xff0c;主要两条命令&#xff1a; wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh bash Anaconda3-5.0.1-Linux-x86_64.sh 然后按照anaconda 的流程&#xff1a; conda create -n tensorflow source activate tensorfl…

js中split,splice,slice方法之间的差异。

首先我们先来林格斯双击翻译一下&#xff1a; split   劈开, 使分裂&#xff1b; splice   接合; 使结合&#xff1b; slice   切成薄片, 切&#xff1b; 我先是这么区分的&#xff1a;这三个方法最后一个字母是t的是字符串方法&#xff0c;是e的则是数组方法&#xff08…

php$paty,CodeIgniter辅助之第三方类库third_party用法分析

本文实例分析了CodeIgniter辅助之第三方类库third_party用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;third_party用来存放系统中引入的第三方类库&#xff0c;类库通常提供的功能比较丰富&#xff0c;相应的学习成本也要高些&#xff0c;系统中能用到功能有限&…

小作文line chart

1.分类 2.具体描述 3.变化比较 4.极点,交叉点描写 单词 增长:increase, rise, go up, grow, be on the rise, climb 明显增长:soar(高飞 n,vi ), skyrocket(飞涨 n, vi) 减少:decrease, drop, fall, decline, be on the fall. 明显减少:plummet(骤然下跌 n, vi), sudden ab…

Android11.0 导航栏添加图标截屏

需求&#xff1a; 导航栏添加截屏和电源键图标&#xff0c;控制截屏和用于设备重启关机功能。设置中添加延时截屏和控制截屏图标显示开关。 1. 导航栏添加图标 1.1 添加布局文件和图标icon 在layout目录下添加nav_power.xml和screenshot.xml文件 frameworks/base/packages…

雅思词汇 词根+联系 记忆法 单词例句-2

Regional accent. Be secure from interruption. Preserve one’s eyesight. They are cheap because they arereject. They sought(seek) in vain for somewhere to shelter. Here’s a hat that looks like acrown. Before going to bed, pleasereview the day’s clas…