控制台应用程序未运行,什么也不显示

时间:2018-11-25 21:31:34

标签: c++ console

问题是要解决这个问题。

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;
}

在构建后执行时,它会打开一个控制台,什么也没显示

2 个答案:

答案 0 :(得分:0)

在main的for循环内添加一个cout语句。您的程序正在运行,只需要很长时间。

答案 1 :(得分:0)

代码很好。 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;