C++ 程序检查一个数字是否可以表示为两个质数的和
以下是一个示例,检查一个数字是否可以表示为两个质数的和。
示例
#include <iostream> using namespace std; int func(int num) { int i; int flag = 1; for(i = 2; i <= num/2; ++i) { if(num % i == 0) { flag = 0; break; } } return flag; } int main() { int num , i; cout << "Enter a number : \n"; cin >> num; for(i = 2; i <= num/2; ++i) { if (func(i)) { if (func(num - i)) { cout << num << " = " << i << " + " << num-i << endl; } } } return 0; }
输出
Enter a number : 18 18 = 5 + 13 18 = 7 + 11
在上面的程序中,func() 函数检查这个数字是不是质数。
int func(int num) { int i; int flag = 1; for(i = 2; i <= num/2; ++i) { if(num % i == 0) { flag = 0; break; } } return flag; }
在 main() 函数中,用户输入了一个数字。它计算这个数字作为两个质数的和。
cout << "Enter a number : \n"; cin >> num; for(i = 2; i <= num/2; ++i) { if (func(i)) { if (func(num - i)) { cout << num << " = " << i << " + " << num-i << endl; } } }
广告