本文目錄一覽:
- 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;
}
原創文章,作者:KEIK,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/140571.html