6个回答
展开全部
#include <stdio.h>
bool IsPrimeNum(int n) {
if(n < 2) return false;
for(int i = 2;i*i <= n;i++)
if(n%i == 0) return false;
return true;
}
int main() {
int counter;
for(int i = 100;i < 103;i += 2) {
printf("%d",i);
counter = 0;
for(int j = 2;j <= i;j++) {
if(IsPrimeNum(j) && (IsPrimeNum(i - j))) {
if(counter%12 == 0) printf("\n");
printf(" = %d + %d",j,i - j);
counter++;
}
}
printf("\n");
}
return 0;
}
展开全部
证明是不可能的,因为这在数学上都难以证明,只能用很多数取验证,下面从4 到100 的验证:
#include <stdio.h>
int prime(int n)
{
int i, flag = 1;
for (i = 2; i * i <= n; i++)
{
if (n % i == 0)
{
flag = 0;
break;
}
}
return flag;
}
int main(void)
{
int n, i;
for (n = 4; n < 100; n += 2)
for (i = 2; i <= n / 2; i++)
{
if(prime(i) && prime(n - i))
printf("%d + %d = %d\n", i, n - i, n);
}
return 0;
}
#include <stdio.h>
int prime(int n)
{
int i, flag = 1;
for (i = 2; i * i <= n; i++)
{
if (n % i == 0)
{
flag = 0;
break;
}
}
return flag;
}
int main(void)
{
int n, i;
for (n = 4; n < 100; n += 2)
for (i = 2; i <= n / 2; i++)
{
if(prime(i) && prime(n - i))
printf("%d + %d = %d\n", i, n - i, n);
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.H>
#include <math.h>
int prime(int m)
{
int i,n;
if(m==1)return 0;
n=(int)sqrt((double)m);
for(i=2;i<=n;i++)
if(m%i==0)return 0;
return 1;
}
void main()
{
int count,i,number;
count=0;
for(number=6;number<=20;number=number+2)
{
for(i=3;i<=number/2;i=i+2)
if(prime(i)&&prime(number-i))
{
printf("%d=%d+%d ",number,i,number-i);
count++;
if( count%5==0 )printf("\n");
continue;
}
}
}
#include <math.h>
int prime(int m)
{
int i,n;
if(m==1)return 0;
n=(int)sqrt((double)m);
for(i=2;i<=n;i++)
if(m%i==0)return 0;
return 1;
}
void main()
{
int count,i,number;
count=0;
for(number=6;number<=20;number=number+2)
{
for(i=3;i<=number/2;i=i+2)
if(prime(i)&&prime(number-i))
{
printf("%d=%d+%d ",number,i,number-i);
count++;
if( count%5==0 )printf("\n");
continue;
}
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<math.h>
void fun(int a)
{
int k,m1,m2;
for(m1=2;m1<=a/2;m1=m1+1)
{
for(k=2;k<=sqrt(m1);k++)
if(m1%k==0)break;
if(k>sqrt(m1))
{
m2=a-m1;
for(k=2;k<=sqrt(m2);k++)
if(m2%k==0)
break;
if(k>sqrt(m2))
printf("%d=%d+%d\n",a,m1,m2);}
}
}
main()
{
int i,a;
printf("\n ENTER a:");
while(scanf("%d",&a)==1&&a)
{for(i=2;i<=a;i+=2)fun(i);printf("\n ENTER a:");}
}
#include<math.h>
void fun(int a)
{
int k,m1,m2;
for(m1=2;m1<=a/2;m1=m1+1)
{
for(k=2;k<=sqrt(m1);k++)
if(m1%k==0)break;
if(k>sqrt(m1))
{
m2=a-m1;
for(k=2;k<=sqrt(m2);k++)
if(m2%k==0)
break;
if(k>sqrt(m2))
printf("%d=%d+%d\n",a,m1,m2);}
}
}
main()
{
int i,a;
printf("\n ENTER a:");
while(scanf("%d",&a)==1&&a)
{for(i=2;i<=a;i+=2)fun(i);printf("\n ENTER a:");}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int n;
scanf("%d",&n);
for(p1=n/2,p2=n-p1;p1>=2;p1--,p2++)
{
if(Isprime(p1)&&Isprime(p2))
{printf("ok");break;}
}
int Isprime(int n)
{
int k;
k=sqrt(n);
for(int i=2;i<=k;i++){
if(n%i)==0 return 1;break;}
if(i>k) return 0;
}
scanf("%d",&n);
for(p1=n/2,p2=n-p1;p1>=2;p1--,p2++)
{
if(Isprime(p1)&&Isprime(p2))
{printf("ok");break;}
}
int Isprime(int n)
{
int k;
k=sqrt(n);
for(int i=2;i<=k;i++){
if(n%i)==0 return 1;break;}
if(i>k) return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询