13195の素因数は5、7、13、29である。 600851475143の素因数のうち最大のものを求めよ。
#include <stdio.h> void main() { //const __int64 Val = 13195; const __int64 Val = 600851475143LL; __int64 copiedVal = Val; __int64 kariMax = 1; for (__int64 I = 2; I <= copiedVal; I++) { while (copiedVal % I == 0) { kariMax = I; copiedVal /= I; } } printf("最大の素因数 = %I64d \n",kariMax); }
最大の素因数 = 6857
オーバフローを防ぐため、MSDN --- __int64型を使ってます。