在括号内填上50以内的质数[可重复使用],使每3个质数的和等干51列3道[ ]加[ ]=51]加[ ]=51

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/07 23:37:00

在括号内填上50以内的质数[可重复使用],使每3个质数的和等干51列3道[ ]加[ ]=51]加[ ]=51
在括号内填上50以内的质数[可重复使用],使每3个质数的和等干51
列3道
[ ]加[ ]=51
]加[ ]=51

在括号内填上50以内的质数[可重复使用],使每3个质数的和等干51列3道[ ]加[ ]=51]加[ ]=51
#include <iostream>
#include <math.h>
using namespace std;
#define N 51   //此处可自由改变N的大小.
int f(int n)    //起到判断正整数是否为素数的作用,返回一个值以标识,是则返回1,否则返回0.
{
 int i,j=0;
 for(i=2;i<=sqrt(n);i++)
  if(n%i==0)
   j++;  
   if(n==1)  return 0;
   else
  {
    if(j==0) 
   return 1;
    else
   return 0;
  }
}
int main()
{
 int i,j,k,m=0,b[N/2];
 for(i=1;i<=N;i++)      //1至51之间的一系列素数存入数组b中.
  if(f(i))
  {
   b[m]=i;
            m++;                        
  }
 for (i=0;i<m;i++)
  for (j=i;j<m;j++)
   for (k=j;k<m;k++)  
     if(b[i]+b[j]+b[k]==N) //三个for循环,注意体会!
    cout<<b[i]<<"+"<<b[j]<<"+"<<b[k]<<"="<<N<<endl;
  
  return 0;
}

17+17+17
19+19+13
11+3+37