C++で1からnまでの素数の合計を見つけるプログラム
この問題では、数nが与えられます。私たちのタスクは、C++で1からnまでの素数の合計を見つけるプログラムを作成することです 。
素数は、2つの要素しかない数です。それらは数と1です。
問題を理解するために例を見てみましょう
入力
n = 15
出力
41
説明
1から15までの素数は2、3、5、7、11、13です。sumis41。
ソリューションアプローチ
この問題を解決する簡単な方法は、ループを使用して、各数値が素数であるかどうかを確認し、素数であるすべての数値を追加することです。
数iが素数であるかどうかを確認します。 iからi/2にループします。 iを分割できる数があるかどうかを確認します。はいの場合、その番号は素数ではありません。
ソリューションの動作を説明するプログラム
例
#include <iostream>
using namespace std;
bool isPrime(int n){
for(int i = 2; i < n/2; i++){
if(n%i == 0){
return false;
}
}
return true;
}
int findPrimeSum(int n){
int sumVal = 0;
for(float i = 2; i <= n; i++){
if(isPrime(i))
sumVal += i;
}
return sumVal;
}
int main(){
int n = 15;
cout<<"The sum of prime number between 1 to "<<n<<" is "<<findPrimeSum(n);
return 0;
} 出力
The sum of prime number between 1 to 15 is 45
効果的な解決策は、エラトステネスのふるいを使用して素数を見つけ、それらを加算して必要な合計を見つけることです。
ソリューションの動作を説明するプログラム
例
#include <iostream>
using namespace std;
int findPrimeSum(int n){
int arr[n+1] = {0};
for (int i = 2; i < n; i++) {
for (int j = i * i; j < n; j+=i) {
arr[j - 1] = 1;
}
}
int sumVal;
for (int i = 2; i < n; i++) {
if (arr[i - 1] == 0)
sumVal += i;
}
return sumVal;
}
int main(){
int n = 15;
cout<<"The sum of prime number between 1 to "<<n<<" is "<<findPrimeSum(n);
return 0;
} 出力
The sum of prime number between 1 to 15 is 41
-
数値が2つの素数の合計として表現できるかどうかをチェックするC++プログラム
以下は、数値が2つの素数の合計として表現できるかどうかを確認する例です。 例 #include <iostream> using namespace std; int func(int num) { int i; int flag = 1; for(i = 2; i <= num/2; ++i) { if(num % i == 0) { flag = 0; &nb
-
再帰を使用して自然数の合計を見つけるC++プログラム
自然数は1から始まる正の整数です。 自然数のシーケンスは-です 1, 2, 3, 4, 5, 6, 7, 8, 9, 10…… 再帰を使用して最初のn個の自然数の合計を見つけるプログラムは次のとおりです。 例 #include <iostream> using namespace std; int sum(int n) { if(n == 0) return n; else return n + sum(n-1); } int main() { &