C ++でNまでの代替素数?
ここでは、Nまでのすべての代替素数を出力する方法を説明します。代替素数は次のようになります。 N =15と仮定します。したがって、Nまでの素数は{2、3、5、7、11、13}です。代替素数は{2、5、11}です。この問題をどのように解決できるか見てみましょう。
アルゴリズム
printAlternatePrime(N)
Begin define one Boolean array prime of size N + 1, and fill with 1. for p := 2, p^2 is less than N, increase p by 1, do if prime[p] is true, then for all multiples of p, make the position 0 in prime array end if done set the flag for p := 2 to n, do if prime[p] is true, then if flag is set, then print p, and reset the flag else set the flag end if end if done End
例
#include<iostream>
using namespace std;
void printAlternatePrime(int n) {
bool prime[n + 1];
for(int i = 0; i<=n; i++) {
prime[i] = true;
}
for (int p = 2; p * p <= n; p++) {
if (prime[p]) {
for (int i = p * 2; i <= n; i += p) //all multiples will be false
prime[i] = false;
}
}
bool prime_flag = true;
for (int p = 2; p <= n; p++) {
if (prime[p]) {
if (prime_flag) {
cout << p << " ";
prime_flag = false;
} else {
prime_flag = true; //set to print next prime
}
}
}
}
main() {
int n;
cout << "Enter upper limit: ";
cin >> n;
cout << "Alternate prime numbers are: ";
printAlternatePrime(n);
} 出力
Enter upper limit: 20 Alternate prime numbers are: 2 5 11 17
-
C++のリンクリストの代替ノードの合計
この問題では、リンクリストが表示されます。私たちのタスクは、リンクリストの代替ノードの合計を出力することです。 リンクリストは、リンクを介して相互に接続された一連のデータ構造です。 では、問題に戻りましょう。ここでは、リンクリストの代替ノードを追加します。これは、ノードが位置0、2、4、6、…であることを追加することを意味します 問題を理解するために例を見てみましょう。 入力 4 → 12 → 10 → 76 → 9 → 26 → 1 出力 24 説明 considering alternate strings
-
C++での代替フィボナッチ数
フィボナッチ数 は、2つの固定数、通常は o、1で始まる数列として定義されます。 または1、1 シーケンスの連続する要素は、シーケンスの前の2つの番号の合計です。 たとえば、8要素までのフィボナッチ数列は0、1、1、2、3、5、8、13、21、34、55、89です。 それでは、このシリーズを一般化してみましょう。ここで、n番目の項の値は(n-1)番目と(n-2)番目の項の合計に等しくなります。それでは、フィボナッチ数列のn番目の項の式の数学的導出を取得しましょう。 T n =T n-1 + T n-2 この式を使用してフィボナッチ数列の第5項を見つけると、第3項と第4項