使用 C++ 统计可以表示为相同奇偶性素数之和的数字
给定一个大小为 N 的正整数数组 Arr[]。目标是统计该数组中可以表示为相同奇偶性素数之和的元素的数量,也就是说,它们可以表示为相同素数的和。例如:4= 2+2,6=3+3 或 2+2+2
任意两个奇数或偶数素数之和始终为偶数。除 0 和 2 外,所有偶数都可以表示为相同素数之和。
让我们用例子来理解。
输入
Arr[] = { 2, 5, 10, 15, 20, 25 }输出
Number which satisfy condition : 3
解释
Numbers as sum of same primes: Arr[0] = 2 X count=0 Arr[1] = 5 : X count=0 Arr[2] = 10 :5+5 count=1 Arr[3] = 15 : X count=1 Arr[4] = 20 : 5+5+5+5 count=2 Arr[5] = 25 : X count=2
输入
Arr[] = { 0, 2, 4, 11, 13}输出
Number which satisfy condition : 1
解释
Numbers as sum of same primes: Arr[0] = 0 : X count=0 Arr[1] = 2 : X count=0 Arr[2] = 4 : 2+2 count=1 Arr[3] = 11 : X count=1 Arr[4] = 13 : X count=1
下面程序中使用的算法如下
我们取一个长度为 N 的正整数数组。
函数 sumofparityPrimes(int arr[],int n) 以数组和 n 作为输入,并返回可以表示为相同奇偶性素数之和的元素的数量。
将初始变量 count 初始化为 0,用于表示此类数字。
使用 for 循环遍历数组。
对于每个元素,如果它是偶数 ( arr[i]%2==0 )。
然后检查它是否既不是 0 也不是 2。如果是,则递增 count。
在 for 循环结束时返回 count 作为结果。
示例
#include <bits/stdc++.h>
using namespace std;
int sumofparityPrimes(int arr[],int n){
int count = 0;
for(int i=0;i<n;i++){
if(arr[i]%2==0) //num is even only{
if(arr[i]!=0){
if(arr[i]!=2)
{ count++; } //neither 0 nor 2
}
}
}
return count;
}
int main(){
int Arr[]={ 12, 5 , 15, 8, 100, 40 };
int Length= sizeof(Arr)/sizeof(Arr[0]);
cout <<endl<< "Number which satisfy condition : "<<sumofparityPrimes(Arr,Length);
return 0;
}输出
如果我们运行以上代码,它将生成以下输出:
Number which satisfy condition : 4
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP