寻找最大素数的因素? [英] Find the largest prime number factor?

查看:229
本文介绍了寻找最大素数的因素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要找到
的13195的首要因素是5,7,13和29。
/ *最大的是377 * /
什么是数字600851475143的最大素因子?

 #包括LT&;&stdio.h中GT;
诠释的main()
{
    INT I,J = 0;
    / * code工程真的没事13195或26 * /
    长值,大= 600851475143 / * 13195 * /;    对于(值=(大 - 1);价值> = 3; value--)
    {
        如果(大百分比值== 0)
        {
            / *的printf(我在这里\\ n); * /
            如果((值%2 = 0)及!&放大器;!(值%3 = 0)及及(值%5 = 0)及!&放大器;!(值%7 = 0))
            {
                J = 1;
                打破;
            }
        }
    }    如果(J == 1)
    {
        的printf(%LD,值);
    }
    返回0;
}

往哪里去了?


解决方案

 #包括LT&;&stdio.h中GT;
//欧拉问题#3
诠释主(){
    长长的我,SQI;
    长长的价值,大= 600851475143LL;
    长长最大= 0LL;    I = 2LL;
    SQI = 4LL; // I * I
    对(价值=大; SQI< =值; SQI + = 2LL *我++ + 1LL){
        而(值%我== 0LL){
            值/ =(最大值= 1);
        }
    }    如果(值= 1LL和放大器;!&安培;!价值=大){
        MAX =价值;
    }
    如果(最大== 0LL){
        MAX =大;
    }
    的printf(%LLD \\ n,最大值);
    返回0;
}

I need to find The prime factors of 13195 are 5, 7, 13 and 29. / * Largest is 377. * / What is the largest prime factor of the number 600851475143 ?

#include<stdio.h>
int main()
{
    int i, j = 0;
    /*Code works really fine for 13195 or 26*/
    long value, large = 600851475143 /*13195*/;

    for(value = (large - 1) ; value >= 3; value--)
    {
        if(large % value == 0)
        {
            /*printf("I am here \n");*/
            if((value % 2 != 0) && (value % 3 != 0) && (value % 5 != 0) && (value % 7 != 0) )   
            {
                j = 1;
                break;
            }
        }
    }

    if (j == 1)
    {
        printf("%ld", value);
    }
    return 0; 
}

Where it is going wrong?

解决方案

#include<stdio.h>
//Euler problem #3
int main(){
    long long i, sqi;
    long long value, large = 600851475143LL;
    long long max = 0LL;

    i   = 2LL;
    sqi = 4LL; //i*i
    for(value = large; sqi <= value ; sqi +=  2LL * i++ + 1LL){
        while(value % i == 0LL){
            value /= (max=i);
        }
    }

    if(value != 1LL && value != large){
        max = value;
    }
    if(max == 0LL){
        max = large;
    }
    printf("%lld\n", max);
    return 0; 
}

这篇关于寻找最大素数的因素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆