腾讯2017秋招笔试编程题之素数
程序员文章站
2022-03-11 22:29:18
...
题目描述:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
c++控制台程序如下:
#include "pch.h"
#include<string>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui_c.h>
#include<math.h>
using namespace std;
int main(int argc, char**argv)
{
string s = "";
getline(cin, s, '\n');
int x = stoi(s, 0, 10);
int m = 0, p = 0, q = 0, l = 0;
int zu[1000];
for (int i = 2; i <= (x / 2); i++)
{
for (int k = 2; k <= i; k++)
{
{
if (i%k == 0)
{
l++;
if (k == i && l == 1)
{
m = x - i;
for (int n = 2; n <= m; n++)
{
if (m%n == 0)
{
q++;
if (n == m && q == 1)
{
zu[p] = i;
zu[p + 1] = n;
printf("(%d,%d)", i, n);
p = p + 2;
}
}
}
q = 0;
}
}
}
}
l = 0;
}
if (p == 0)
{
printf("该数无组合");
}
else
{
printf("共有%d种组合\n", p / 2);
for (int e = 0; e < p; e = e + 2)
{
printf("(%d,%d)\n", zu[e], zu[e + 1]);
}
}
while (getchar() != '\n');
return 0;
}
上一篇: CentOS7常用命令
下一篇: 小记:判断当前时间是否在某一个时间范围内