寻找最大素数的因素? [英] Find the largest prime number factor?
本文介绍了寻找最大素数的因素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要找到
的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屋!
查看全文