本文目录一览:
- 1、C语言 哥德巴赫猜想:任意大于等于6的偶数都可以分解为2个质数之和:如6=3+3,8=3+5;10
- 2、如何用C语言编程哥德巴赫猜想?
- 3、初学C语言 验证哥德巴赫猜想:一个大偶数可以分解成两个素数之和。
- 4、C语言 哥德巴赫猜想
C语言 哥德巴赫猜想:任意大于等于6的偶数都可以分解为2个质数之和:如6=3+3,8=3+5;10
#includestdio.h
int prime(int n)
{
if (n % 2 == 0 n != 2) return 0;
int i = 3;
for (; i n; i += 2)
if (n % i == 0) return 0;
return 1;
}
int main()
{
int n, j = 0;
scanf("%d", n);
if (n % 2 == 1 || n 6) return 1;
for (j = 2; j = n / 2; j++)
{
if (prime(j) prime(n - j))
printf("%d=%d+%d\n", n, j, n - j);
}
return 0;
}
如何用C语言编程哥德巴赫猜想?
#include
void main( )
{
int i, j, k, IsPrime;
for(i = 4; i = 100; i += 2) /*偶数i从4到100*/
{
for(j = 2; j = i / 2; j++) /* 将j从2到i/2进行测试 */
{
for(k = 2, IsPrime = 1; (k = j / 2) IsPrime; k++) /*判断j是否为素数*/
if(j % k == 0) IsPrime = 0;
if(IsPrime) { /*如果j是素数*/
for(k = 2, IsPrime = 1; (k = (i - j) / 2) IsPrime; k++) /*判断i-j是否是素数*/
if((i - j) % k == 0) IsPrime = 0;
if(IsPrime) /*如果i-j也是素数,则找到了i的一个解,将其输出,下一个偶数i*/
{
printf("%d = %d + %d\t", i, j, i - j);
break;
}
}
}
}
}
除了printf与main外,没有用到其他任何的函数,楼主不妨试一试。
初学C语言 验证哥德巴赫猜想:一个大偶数可以分解成两个素数之和。
你好,我给在几个地方加了几个{}就可以了,代码:
#includestdio.h
#includemath.h
main()
{
int n,x,y,a,b,i,j;
for(n=96;n=100;n+=2)
{
for(x=3;xn/2;x+=2)
{ //第一个括号
a=sqrt(x);
for(i=2;i=a;i++)
if(x%i==0) break;
if(i=a+1)
{ // 第二个括号 它必须保证找到第一个素数,才能执行下面
y=n-x; // 找第二个素数
b=sqrt(y);
for(j=2;j=b;j++)
if(y%j==0) break;
if(j=b+1)
printf("%d=%d+%d\n",n,x,y);
}
} //第一个括号结束
}
}
C语言 哥德巴赫猜想
我的程序不行么,我回答过你一次了
#include stdio.h
int is_prime(int n)
{
int i;
for(i = 2; i n ; i++)
{
if(n % i == 0)
break;
}
if(n == i)
return 1;
else
return 0;
}
int main(void)
{
int M;
int i,j;
int flag = 0;
scanf("%d",M);
for(i = M/2; i M; i++)
{
for(j = M/2;j 1; j-- )
if((is_prime(i)is_prime(j)) ((i+j) == M))
{
printf("%d %d\n",j,i);
flag = 1;
break;
}
if(flag == 1)
break;
}
return 0;
}