数の最大の素因数を見つけるためのCプログラム?
このセクションでは、効率的な方法で数値の最大の素因数を取得する方法を説明します。 n =1092と言う数があり、これの最大の素因数を取得する必要があります。 1092の素因数は2、2、3、7、13です。したがって、最大は13です。この問題を解決するには、このルールに従う必要があります-
-
数値が2で割り切れる場合は、2を最大として格納し、数値を2で繰り返し除算します。
-
今、数は奇数でなければなりません。ここで、数値の3から平方根まで、数値が現在の値で割り切れる場合は、係数を最大値として格納し、数値を現在の数値で割って変更してから続行します。
-
そして最後に、数値が2より大きい場合、それは1ではないので、最大素因数を取得します。
より良いアイデアを得るためのアルゴリズムを見てみましょう。
アルゴリズム
getMaxPrimeFactors(n)
begin while n is divisible by 2, do max := 2 n := n / 2 done for i := 3 to √𝑛, increase i by 2, do while n is divisible by i, do max := i n := n / i done done if n > 2, then max := n end if end
例
#include<stdio.h> #include<math.h> int getMaxPrimeFactor(int n) { int i, max = -1; while(n % 2 == 0) { max = 2; n = n/2; //reduce n by dividing this by 2 } for(i = 3; i <= sqrt(n); i=i+2){ //i will increase by 2, to get only odd numbers while(n % i == 0) { max = i; n = n/i; } } if(n > 2) { max = n; } return max; } main() { int n; printf("Enter a number: "); scanf("%d", &n); printf("Max prime factor: %d", getMaxPrimeFactor(n)); }
出力
Enter a number: 24024 Max prime factor: 13
-
リスト内で最大数を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 与えられたリスト入力では、与えられたリストの中で最大の数を見つける必要があります。 ここでは、2つのアプローチについて説明します 並べ替え手法の使用 組み込みのmax()関数を使用する アプローチ1-組み込みのsort()関数を使用する 例 list1 = [18, 65, 78, 89, 90] list1.sort() # main print("Largest element is:", list1[-1]) 出力 Largest element is:
-
数の最大の素因数を見つけるためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 正の整数nが与えられます。数の最大の素因数を見つける必要があります。 アプローチ 指定された数値を数値の約数で割って因数分解します。 最大素因数を更新し続けます。 例 import math def maxPrimeFactor(n): # number must be even while n % 2 == 0: max_Prime = 2 n /= 1