C++で数とその最大素因数の合計を求めます
正の数nがあり、Nとその最大素因数の合計を見つける必要があるとします。したがって、数値が26の場合、最大素因数は13であるため、合計は26 + 13=39になります。
アプローチは簡単です。最大素因数を見つけて、合計を計算して返すだけです。
例
#include<iostream> #include<cmath> using namespace std; int maxPrimeFact(int n){ int num = n; int maxPrime = -1; while (n % 2 == 0) { maxPrime = 2; n /= 2; } for (int i = 3; i <= sqrt(n); i += 2) { while (n % i == 0) { maxPrime = i; n = n / i; } } if (n > 2) maxPrime = n; return maxPrime; } int getRes(int n) { int sum = maxPrimeFact(n) + n; return sum; } int main() { int n = 26; cout << "Sum of " << n <<" and its max prime factor is: " << getRes(n); }
出力
Sum of 26 and its max prime factor is: 39
-
xとその桁の合計がC++で指定されたnと等しくなるような数xを見つけます
ここで、1つの問題が発生します。ここで、数値nを取得する場合、x +桁の合計xが指定された数値nと同じになるように、xなどの別の値を見つける必要があります。 nの値が21であると仮定します。このプログラムは、15+桁の合計15、つまり15 + 1 + 5 =21=nとして数値x=15を返します。 この問題を解決するには、単純なアプローチに従う必要があります。 1からnまで繰り返し、各繰り返しで、数値とその桁の合計の合計が数値と同じであるかどうかを確認し、停止します。それ以外の場合は続行します。 例 #include<iostream> using namespace std; i
-
C++での単一リンクリストの最小および最大素数。
問題の説明 n個の正の整数のリンクリストが与えられます。最小値と最大値を持つ素数を見つける必要があります。 指定されたリストが-の場合 10 -> 4 -> 1 -> 12 -> 13 -> 7 -> 6 -> 2 -> 27 -> 33 then minimum prime number is 2 and maximum prime number is 13 アルゴリズム 1. Find maximum number from given number. Let us call it maxNumber 2. Generate pri