尤拉計畫3 找出乙個合數的最大質數因子

2021-09-12 18:42:36 字數 812 閱讀 5359

題目:

13195 的質數因子有 5, 7, 13 和 29。

600851475143 的最大質數因子是多少?

分析:剛開始寫的時候,很麻煩,首先寫了乙個prime函式,然後又在主函式裡寫了乙個迴圈來更新max(迴圈i從2到n,找出n的每乙個質因數),這樣一來,對於這道題,即便是long long型別有可能輸出,但時間複雜度太高,效率太慢。

然後通過在網上了解到,任何乙個合數都是可以由他的所有質因素相乘得到的,比如15=3*3*3*3*3,12=2*2*3,60=2*2*3*5。好的,我們先看乙個比較小的數60,現在我們要找它的最大質因子,我們可以從最小數開始,從小數除起可以確保該數為質數,所以不必判斷是否為質數,如果餘數為零,那麼它就是其中乙個質因子。然後原數就可以除這個因子了,為了排除已經找到的因子,我們一直將它除這個數,直到不能整除,60/=2得30,30/=2得15,到此結束此因子,我們就找到了2這個質因子;同理,到3的時候15/=3得5,找到了3這個質因子;5/5=1,可以結束,5就是我們要找的最大質因子啦。

#include int main()

} printf("%lld",n);

}

在看別人的題解時,我發現了乙個新的型別,unsigned long long,其實在剛開始學c的時候就有講到過這個型別,範圍比long long大,但我是現在才知道(貌似發現了新大陸)。

#include int main()

else

break;

}printf("%llu",n);

}

尤拉計畫3 找出乙個合數的最大質數因子

由於數學太差了,來搞搞pe,先從水題做起。題意 13195的質數因子有5,7,13和29.600851475143的最大質數因子是多少?這裡可以肯定的是 1.數字很大,絕對不能暴力。2.如果這是一到oj題,那麼我們的目的就是盡量縮小這個數,減少計算量。我們都知道,任何乙個合數都是可以由他的所有質因素...

關於尤拉公式證明的乙個延拓

現在,我們通過幾種不同的方法來闡述下尤拉公式的證明思想,即證明,e i 1 0.首先指數函式是定義在實數域上的,現在要延拓到複數域上,首先要定義e i,e ix是什麼,嚴格地說,這是一種定義,而且,這個定義是合理的.e ix cosx isinx,e是自然對數的底,i是虛數單位,他將三角函式的定義域...

Python找出乙個數的最大質因素

舉例 首先我們來看個例子 13195的質因數為 5,7,13,29,其中29就是最大的質因數,現在讓我們來計算600851475143的最大質因素。from math import sqrt 質數判斷 def isprime n for i in range 2,int sqrt n 1 if n ...