求一个数(i)的最大质因数

#include <stdio.h>
#include <math.h>

/*判断: 
        是否余数为0且商为1?    跳出循环,输出被除数
        是否余数为0且商不为1?  继续除
        两者都不是?           被除数+1         */
        
int main()
{
    long long int i = 600851475143  ,temp;
    for(temp = 2;temp <= i;)
    {
        if(i % temp == 0 && i/temp == 1)
        {
            break;
        }
        else if(i % temp ==0 && i/temp != 1)
        {
            i /= temp;
        }else{temp++;}
    }
    printf("%lld\n",temp);
}

猜你喜欢

转载自blog.csdn.net/wkwk7600/article/details/83541567