| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
题目:编写一个程序,求解 600851475143 的最大质数因子是多少? 
 
代码: 
#include <stdio.h> 
#include <stdlib.h> 
 
int main() 
{ 
    long long target, mid = 0, test,re; 
    //target用来表示最大质数因子,mid用来判断target是否为质数, 
    //test用来用来测试target是否为质数,re用来表示600851475141与target的余数 
    for(target = 600851475141;target > 0;target = target - 2) 
    { 
        //re为0则target是600851475143的因数,反之则不是 
        re = 600851475143 % target; 
        //mid为0则target是质数,反之则不是 
        for(test = 2;test < target;test++) 
        { 
            if(target % test == 0) 
            { 
                mid = 1; 
                break; 
            } 
        } 
        //因为target是600851475143倒着找因数的,所以第一个满足余数为0且为质数的target就是最大质数因子 
        if(re == 0 && mid == 0) 
        { 
            printf("600851475143 的最大质数因子是%11d", target); 
            break; 
        } 
    } 
    return 0; 
}
-  for(target = 600851475141;target > 0;target = target - 2)//数太大,每次减2,用时太长
 
  复制代码 
 
 
 |   
 
 
 
 |