I need an optimal algorithm to find the largest divisor of a number N. Preferably in C++ or C#

前端 未结 12 1537
无人共我
无人共我 2020-12-29 11:51

I am currently using the following code but its very slow for large numbers



        static int divisor(int number)
        {
            int i;
                    


        
12条回答
  •  情话喂你
    2020-12-29 12:02

    Don't know if it's the optimal solution but you'd probably be better starting at 2 then going upwards such as:

      static int divisor(int number)
        {
            int i;
            for (i = 2; i 

    EDIT

    to get it to work with primes as well:

     static int divisor(int number)
        {
            int i;
            for (i = 2; i <=sqrt(number); i++)
            {
                if (number % i == 0)
                {
                    return number/i;
                }
            }
            return 1;
        }
    

提交回复
热议问题