首页 > 解决方案 > 控制台应用程序未运行且不显示任何内容

问题描述

问题是要解决这个问题。

13195 的质因数是 5、7、13 和 29。数字 600851475143 的最大质因数是多少?

我写了这段代码

#include <iostream>
#include <math.h>
using namespace std;

bool prime(long int a);

int main()
{
long int b = 600851475143/2;
long int k;



for(long int i = 1; i <= b ; i++)
{
    if(b % i == 0 && prime(i) == true)
        {
            k = i;
        }
}
cout << k << endl;
return 0;



}

bool prime(long int a) 
{
bool p = true; 

for(long int i = 2; i <= sqrt(a) && p == true ; i++) 
     if(a % i == 0) p = false;

return p;
}

当我在构建后执行时,它会打开一个控制台,并且什么也不显示

标签: c++console

解决方案


代码很好。600851475143/2 只是一个很大的数字,所以您必须等待几分钟才能打印出结果。此外,如果它是素数,那么您将测试两次,这会使复杂性不必要地高得多。尝试这个:

long int b = 600851475143/2;
long int k = b;
for(long int i = 2; i < b ; i++)
{
    if(b % i == 0)
    {
        k = i;
        break;
    }
}
cout << k << endl;

推荐阅读