欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

腾讯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;
}
相关标签: 小记