㈠ 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;
}