當前位置:首頁 » 編程語言 » 三個質數之和等於奇數c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

三個質數之和等於奇數c語言

發布時間: 2023-05-21 09:42:54

c語言程序,哥德巴赫猜想:任何大於5的奇數都可以表示為三個素數之和, 並輸出被驗證數的所有可能形式。

#include<stdio.h>
void main(void)
{
int prime(int);
int n,i,j,k;
scanf("斗告%d",&n);
for(i=2;i<=n-4;i++)
for(j=i;j<=n-i*2;j++)
for(k=j;k<做銷伍=n-i-j;k++)
if(i+j+k==n&&prime(i)&&prime(j)&&prime(k))
printf("%d= %d+%d+%d\n",n,i,j,k);
}
int prime(int n)
{
int i;
for(i=2;i<n;i++)
if(!(n%i))break;
return n>純或1&&i>=n;
}

㈡ C語言求質數之和

#include<stdio.h>

int IsPrime(int n)

{

int i;

for(i=2;i<n;i++)

if(n%i==0) return 0;

else continue;

return 1;

}

int Sum(int n)

{

int i,sum=2;

if(n<2)return 0;

else if(n==2)return 2;

else

{

for(i=3;i<模羨悄=n;i+=2)

{

sum+=IsPrime(i)?i:0;

}

return sum;

}

}

main()

{

int n;

printf("輸入一個最大數旦渣: ");

scanf("%d",&n);

printf("比%d小的所有質派孫數之和SUM=%d ",n,Sum(n));

getchar();

}

㈢ 一個奇數怎麼分解成三個素數相加,用c++

並非所有奇數,必須是大於9的奇數

#include<cstdio>#include<vector>#include<cmath>usingnamespacestd;intmain(){
intn;
scanf("%d",&n);
vector<int>zs;//枚舉2到n之間的全部質數
zs.push_back(2);
for(inti=3;i<n;i+=2){
for(intj=2;j<=sqrt(i);j++){
if(i%j==0)gotoa1;
}
zs.push_back(i);
a1:;
}
敗漏遲察李intd=zs.size();
intt1=0,t2=0,t3=d-1;
while(zs[t1]+zs[t2]+zs[t3]!=n){
if(zs[t1]+zs[t2]+zs[t3]>搜雀n){
t3--;
}
if(zs[t1]+zs[t2]+zs[t3]<n){
t2++;
}
if(t3<=t2){
t1++;
t2=t1;
t3=d-1;
}
}
printf("%d%d%d",zs[t1],zs[t2],zs[t3]);
return0;
}

㈣ 每個不小於9的奇數都是三個奇素數(奇素數就是不包含2的素數)之和。用c語言怎麼實現啊

#include<stdio.h>
#include<math.h>
intisprime(intn)
{
inti;
if(n==2)
return0;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return0;
}
return1;
}
int改慧main()
{
intnum,i,j,k,n=0;
intnumber[100]={0};
while(scanf("%d",&兆悄num),num!=0)
{
for(i=3;i<num;i++)
{
for(j=i;j<num;j++)
{
for(k=j;k<num;k++)
{
if(i+j+k==num&&isprime(i)&族殲渣&isprime(j)&&isprime(k))
{
number[n]++;
}
}
}
}
n++;
}
for(i=0;i<n;i++)
{
if(number[i]!=0)
printf("%d ",number[i]);
else
printf("Error ");
}
return0;
}