C++显示两个区间之间的数字的程序检查一个数字是否可以表示为两个素数的总和

C++ Program to Display Numbers Between Two Intervals Check Whether a Number can be Express as Sum of Two Prime Numbers

本文关键字:数字 两个 表示 程序 之间 区间 显示 C++ 检查 一个 是否      更新时间:2023-10-16

>我写了一个程序来显示两个区间之间的数字,并检查是否可以表示为两个质数之和

这是我的代码

//============================================================================================
// Check whether and display a number between two intervals can be expressed as 2 prime number                                                           
//============================================================================================
#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;
int checkPrime (int);
int main()
{
int n1 , n2 , i , j;
bool flag = false;
cout << "Enter two number to check:" << endl;
cin >> n1 >> n2 ;
for (i = n1 ; i <= n2 ; i++)
{
for (j = 2 ; j <= i/2 ; j++ )
{
if(checkPrime (j) && checkPrime (i-j))
{
cout << "Number " << i << " equal sum of two prime number " << j << " + " << i - j << endl;
flag = true;
}                       
}
if (flag == false)
{
cout << "Number " << i << " can't epress to sum of two prime number " << endl;
}
}           
system ("pause");
return 0;
}
int checkPrime (int n)
{
bool flag = true;
for (int i = 2; i <= n/2; i++)
{
if (n % i == 0)
{
flag = false;
break;          
}       
}
return flag;
}

输出 输入两个数字进行检查:
1
12

Number 1 can't epress to sum of two prime number                                                                                                                                                          
Number 2 can't epress to sum of two prime number                                                                                                                                                          
Number 3 can't epress to sum of two prime number                                                                                                                                                          
Number 4 equal sum of two prime number 2 + 2                                                                                                                                                              
Number 5 equal sum of two prime number 2 + 3                                                                                                                                                              
Number 6 equal sum of two prime number 3 + 3                                                                                                                                                              
Number 7 equal sum of two prime number 2 + 5                                                                                                                                                              
Number 8 equal sum of two prime number 3 + 5                                                                                                                                                              
Number 9 equal sum of two prime number 2 + 7                                                                                                                                                              
Number 10 equal sum of two prime number 3 + 7                                                                                                                                                             
Number 10 equal sum of two prime number 5 + 5                                                                                                                                                             
Number 12 equal sum of two prime number 5 + 7

数字 11 不见了:-s,我不知道为什么:(请帮我修复它

您必须在每个循环中重置标志,否则一旦设置了true值,就永远不会达到此条件if (flag == false)

for (i = n1 ; i <= n2 ; i++)
{
flag = false; /* Reset the flag */
for (j = 2 ; j <= i/2 ; j++ )
{
if(checkPrime (j) && checkPrime (i-j))
{
cout << "Number " << i << " equal sum of two prime number " << j << " + " << i - j << endl;
flag = true;
}                       
}
if (flag == false)
{
cout << "Number " << i << " can't epress to sum of two prime number " << endl;
}
}