有谁能解释下这个C语言说的是什么意思吗?
发布网友
发布时间:2022-02-28 23:52
我来回答
共2个回答
热心网友
时间:2022-03-01 01:21
1 为什么要a/2
如8他可以分为3 和5,这两个数肯定一个小于8/2,一个大于8/2
所以你要把a分为2个素数和,其中一个素数肯定会小于a/2
2 判断一个数是否是素数
如16=2*8=4*4 也就是说如果16不是一个素数,它就可以分为2个数相乘,而这两个数相乘又等于16,所以判断16是否是素数,只需要用2-16的开方(也就是4)来除以16,如果都不能整除,则16就是素数。
#include<stdio.h>
#include<stdio.h>
main()
{
int a,b,c,d;
scanf("%d",&a); //a为要分解的偶数
for(b=3;b<=a/2;b+=2) //b为a分解后其中一个小于a/2的一个素数
{
for(c=2;c<=sqrt(b);c++) //这个循环是判断b是不是素数,用2-b的开方之间的数去处
if(b%c==0) break; //如果其中有一个数可以整除b,就中断该循环
if(c>sqrt(b)) d=a-b; //循环后判断c如果c最后的值>sqrt(b),表示它不是中途用break
else break; //来退出循环的,表示b是一个素数,如b是素数,则继续判断a-b是
for(c=2;c<=sqrt(d);c++) //否是素数,否则再换另一个b
if(d%c==0) break;
if(c>sqrt(d)) printf("%d=%d+%d\n",a,b,d);
}
}
提问前先百度
热心网友
时间:2022-03-01 02:39
#include<stdio.h>
#include<math.h>
main()
{ int a,b,c,d;
scanf("%d",&a); //要把输入的a值写成两个素数之和(即a=b+d)
for(b=3;b<=a/2;b+=2) //循环在范围[3, a/2]中找素数b,如果找到了,那么另一个素数就是a-b
{ for(c=2;c<=sqrt(b);c++) if(b%c==0)break; //测试b是否是素数(方法见后);
if(c>sqrt(b))d=a-b; //如果b是素数,那么另一数就是d=a-b
else break; //如果b不是素数,继续外部循环,找出一个素数;
for(c=2;c<=sqrt(d);c++) if(d%c==0)break; //在b是素数的前提下,测试另一个数d是否是素数;
if(c>sqrt(d)) printf("%d=%d+%d\n",a,b,d); //如果d是素数,那么功能完成,输出两个素数b和d,即a=b+d
}
getch();
}
上述程序中使用下面方法测试一个数b是否是素数:
for(c=2;c<=sqrt(b);c++) if(b%c==0)break;
循环在范围[2, 根号b]中尝试找出一个数,如果能被b整数(即取余为0),那么数b不为素数。
有谁能解释下这个C语言说的是什么意思吗?
所以你要把a分为2个素数和,其中一个素数肯定会小于a/2 2 判断一个数是否是素数 如16=2*8=4*4 也就是说如果16不是一个素数,它就可以分为2个数相乘,而这两个数相乘又等于16,所以判断16是否是素数,只需要用2-16的开方(也就是4)来除以16,如果都不能整除,则16就是素数。include...
谁能帮忙解释一下,这句C语言的的意思,有关指针的。举个例子也行 pcReal...
pcRealValue = (uint8 *)&t_eeSysData:在将此指针存在pcRealValue 变量中
C语言是什么意思,是谁发明的
C语言是一种计算机编程语言,最初由美国贝尔实验室的Dennis Ritchie在1972年至1973年间发明。C语言源于一种名为B语言的编程语言,是为了开发UNIX操作系统而开发的。C语言被广泛应用于系统软件、嵌入式系统开发、服务器端程序、桌面软件、游戏开发等领域。C语言设计简洁紧凑,支持低级别的计算机资源管理和底层...
C 语言从主函数开始执行到主函数结束是什么意思?谁给我具体解释下
通俗点说就是函数的执行时逐行扫描读取语句的,机器在执行你的程序时候会先找到你的main函数(主函数)然后从主函数开始一行行读你的语句,碰到你写的子函数时,机器对主函数的扫描暂停,转到你的子函数具体代码处再次一行行读并执行你的子函数语句,等子函数读完了就回到你原来暂停的主函数那里,继续读...
C语言,谁能解释一下这串代码的意思
说明 在C++中操作符可以过载(overload)。编程人员可以通过过载标准操作符让它在特定类中进行特定运行。例如,可以在一个类中过载递增操作符,让它将变量递增10而不是递增1。操作符过载是个高级C++技术,本书不准备详细介绍。你也许会发现,有些操作符使用了相同的符号。符号的意义随情境的不同而不同。...
谁能帮忙详细解释一下这个C语言程序~~要详细的哦~
c->number[i]=cc%10;//如果cc大于10的话,这个就能存住cc的10位数,相当于进位了。cc/=10;} c->length=i;} //初始化 void init(BigNumber * b,char * a){ int i,length = strlen(a);//把字符转成数字存入BigNumber的数组里。比如:'9'-'0'=9 for(i=length-1;i>=0;--i) b...
各位大神帮帮忙,谁能给我具体讲解一下,c语言返回值,就是return,这个我...
这个原材料就是传说中函数参数,给你的门就是返回值!所以函数调用就是你将你的原始数据托付给一个现有的函数(你自己定义的希望按照你的规则处理,别人写好的,或者标准库里的)并将处理的结果给你。但是在C语言中,你必须声明你将给子函数提供的参数的类型,并声明返回值的类型。举例:int add(int ...
...p[i]=&a[i*4]; pp=p;谁帮我解释一下是什么意思啊?
应该为for(i=0;i<3;++i) 循环 p[i]=&a[i*4]; 意思是p[i]的值为a[i*4]的地址,这里p[i]是指针 也就是 p[0]指向a[0]地址 p[1]指向a[4]地址 p[2]指向a[8]地址 pp=p;pp指向指针数组p的地址 pp是指向指针的指针,p是指针数组,所以p也是指向指针的指针,可以pp=p ...
谁能详细的解释一下C语言中的原语概念到底是什么意思?或者给我一个解释...
所谓原语,是操作系统内核中,由若干条指令构成、用于完成一个特定的功能的一个过程,该过程在执行时是不可中断的。如:创建进程原语:create(n),撤销进程原语:destroy(n),阻塞进程原语:block(),唤醒进程原语:wakeup(n).
菜鸟上路有谁可以告诉一下在C语言中的int fun(int n,int x)表示什么意 ...
这是个函数声明,就是告诉你有一个函数叫fun,实现一定的功能,当你输入两个整数做参数时,他会返回给你一个整型值,至于实现什么功能就看你怎么实现了 举个例子 void main(){ int a=23,b=32,c;int fun(int n,int x); //声明,就是告诉编译器这个函数是存在的 c=fun(a,b);printf("...