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