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型を使ってます。