腾讯2017秋招笔试编程题之素数
2017-08-31 23:07
239 查看
题目描述:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
问题分析:
1. 明确素数的概念,素数即除了能被1和本身整除外,不能被其他数整数的自然数
2. 题目中限定输入为正整数,故可使用int类型变量接受输入值,对于正整数和小于1000的限定用if语句做一个判断
3. 检查输入无误后就要取出素数,根据素数定义对输入的树遍历进行判断,遍历输入正整数使用for循环如下:
再创建一个for循环来作为i的除数如下:
当i%j==0时说明i可被j整除,此时要判断j是否等于1和i本身,如果不等于本省,则说明i不是素数,使用break跳出循环,如果等于i本身或1则说明i为素数故其判断条件如下:
其中result是一个int类型的vector,用于存储取出的素数
4. 对筛选出的素数相加判断是否等于输入正整数,访问vector类型的数据可使用auto推断其类型,不赘述
5. 完整代码如下:
输出结果:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
问题分析:
1. 明确素数的概念,素数即除了能被1和本身整除外,不能被其他数整数的自然数
2. 题目中限定输入为正整数,故可使用int类型变量接受输入值,对于正整数和小于1000的限定用if语句做一个判断
3. 检查输入无误后就要取出素数,根据素数定义对输入的树遍历进行判断,遍历输入正整数使用for循环如下:
for(int i = 2; i<dataInput; i++)
再创建一个for循环来作为i的除数如下:
for(int j = 1; j<= i; j++)
当i%j==0时说明i可被j整除,此时要判断j是否等于1和i本身,如果不等于本省,则说明i不是素数,使用break跳出循环,如果等于i本身或1则说明i为素数故其判断条件如下:
if(i%j==0 && j<i && j!=1) break; else if(i == j) result.push_back(i);
其中result是一个int类型的vector,用于存储取出的素数
4. 对筛选出的素数相加判断是否等于输入正整数,访问vector类型的数据可使用auto推断其类型,不赘述
5. 完整代码如下:
#include <iostream> #include <vector> using namespace std; int main() { int dataInput; cout << "输入一个正整数: "; cin >> dataInput; //判断是否为正整数 if (dataInput <= 0) { cout << "输入数据有误,程序退出..." << endl; exit(EXIT_FAILURE); } //取出素数 vector<int> result; for (int i = 2; i < dataInput;i++) { for (int j = 1; j <= i; j++) { if (i%j == 0 && j < i && j != 1) break; else if (i == j) result.push_back(i); } } //计算是否等于输入值 int count = 0; for (auto resultBegin = result.begin() + 1; resultBegin != result.end(); resultBegin++) { for (auto resultB = result.begin(); resultB != resultBegin + 1; resultB++) { if (*resultB + *resultBegin == dataInput) { cout << "a = " << *resultB << "; b = " << *resultBegin << endl; count++; } } } cout << count << endl; return 0; }
输出结果:
相关文章推荐
- 腾讯2017秋招笔试编程题--素数对
- 腾讯2017秋招笔试编程题(三)---素数对
- 腾讯2017秋招笔试编程题:素数对 [python]
- 2017腾讯校招笔试编程题-拼凑零钱
- 牛客网解题-2017腾讯秋招笔试编程题练习卷
- 2017校园招聘腾讯笔试题 在线编程题
- 2017腾讯编程题----素数对
- 腾讯2017秋招笔试编程题--geohash编码
- 腾讯2017笔试题 求素数对
- 腾讯2017秋招笔试编程题(四)----geohash编码
- 腾讯2017秋招笔试编程题
- 腾讯2017秋招笔试编程题(一)
- 腾讯2017秋招笔试编程题(二)----游戏任务标记
- 腾讯2017秋招笔试编程题
- [笔试练习]腾讯2017暑期实习生编程题
- 腾讯2017秋招笔试编程题
- 腾讯2017秋招笔试编程题
- 腾讯2017暑假实习生招聘笔试编程题
- [笔试编程题] 腾讯2017暑期实习生编程题-java
- 腾讯2017秋招笔试编程题:编码 [python]