腾讯笔试编程题

xiaoxiao2021-02-28  157

素数对

题目描述

给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。 如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))

输入描述:

输入包括一个整数n,(3 ≤ n < 1000)

输出描述:

输出对数 示例1

输入

10

输出

2 思路:首先定义判断是否是质数的函数,判断有多少对质数的和为n,即判断(n-i)和 i是否同时为质数

#include<iostream> using namespace std; int isPrime(int n){ //定义素数判断函数 for(int i = 3; i < n/2 + 1; i++){ if(n % i == 0) return false; } return 1; } int main(){ int n; int count = 0; while(cin >> n){ if(n >= 3 && n < 1000){ for(int i = 3; i <= n/2; i++){ //判断到中值 if(isPrime(i)&&isPrime(n-i)) //如果i和n-i都是质数,计数+1 count ++; } } } cout << count <<endl; return 0; }

转载请注明原文地址: https://www.6miu.com/read-20183.html

最新回复(0)