C++での素数の最大数
このチュートリアルでは、素数がn未満の最大数を見つけるプログラムを作成します。
問題を解決するための手順を見てみましょう。
- 0からnまで繰り返すループを作成します。
- 現在の桁が素数でない場合。
- 桁が2未満の場合、i値をデクリメントします。i値が負の場合は、0にします。
- 現在のインデックス値を次に小さい素数で更新します。
- 次のインデックスから、すべての桁を7にします。
- 現在の桁が素数でない場合。
- nを返します。
例
コードを見てみましょう。
#include <bits/stdc++.h>
using namespace std;
bool isPrime(char c) {
return c == '2' || c == '3' || c == '5' || c == '7';
}
void decrease(string& n, int i) {
if (n[i] <= '2') {
n.erase(i, 1);
n[i] = '7';
}else if (n[i] == '3') {
n[i] = '2';
}else if (n[i] <= '5') {
n[i] = '3';
}else if (n[i] <= '7') {
n[i] = '5';
}else {
n[i] = '7';
}
return;
}
string getPrimeDigitsNumber(string n) {
for (int i = 0; i < n.length(); i++) {
if (!isPrime(n[i])) {
while (n[i] <= '2' && i >= 0) {
i--;
}
if (i < 0) {
i = 0;
}
decrease(n, i);
for (int j = i + 1; j < n.length(); j++) {
n[j] = '7';
}
break;
}
}
return n;
}
int main() {
string n = "7464";
cout << getPrimeDigitsNumber(n) << endl;
return 0;
} 出力
上記のコードを実行すると、次の結果が得られます。
7377
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
C ++を使用して、数値の最大の素因数を見つけます。
要素xがあるとすると、xの最大の素因数を見つける必要があります。 xの値が6の場合、最大の素因数は3です。この問題を解決するには、数値を除数で割って数値を因数分解し、最大の素因数を追跡します。 例 #include <iostream> #include<cmath> using namespace std; long long getMaxPrimefactor(long long n) { long long maxPF = -1; while (n % 2 == 0) {
-
数値がC++でフルプライムであるかどうかを確認します
ここでは、数値が完全素数であるかどうかを確認する方法を説明します。数が素数であり、そのすべての桁も素数である場合、その数は完全な素数であると言われます。数が37であるとすると、これは完全な素数です。しかし、9は素数ではないため、97は完全な素数ではありません。 効率的なアプローチの1つはそれです。まず、素数ではない数字が存在するかどうかを確認する必要があります。数字は0から9でなければなりません。その範囲では、2、3、5、および7が素数であり、その他は素数ではありません。すべてが素数の場合は、その数が素数であるかどうかを確認します。 例 #include <iostream> u