How to find the largest prime factor of 600851475143?

前端 未结 5 1131
挽巷
挽巷 2021-01-16 19:08
#include 
main()
{
    long n=600851475143;
    int i,j,flag;
    for(i=2;i<=n/2;i++)
    {
        flag=1;
        if(n%i==0)//finds factors backw         


        
5条回答
  •  无人及你
    2021-01-16 19:35

    From ISO/IEC 9899:TC3

    5.2.4.2.1 Sizes of integer types

    [...]

    Their implementation-defined values shall be equal or greater in magnitude(absolute value) to those shown, with the same sign.

    [...]

    — minimum value for an object of type long int

    LONG_MIN -2147483647 // -(2^31 - 1)

    — maximum value for an object of type long int

    LONG_MAX +2147483647 // 2^31 - 1

    EDIT:

    Sorry I forgot to add what this should tell you.

    The point is long doesn't even need to be able to hold the value you mentioned, as the standard says it has to be able to hold at least 4 Bytes with sign so it could be possible that your machine is just able to hold values up to 2147483647 in a variable of type long.

提交回复
热议问题