【发布时间】:2016-09-19 16:45:46
【问题描述】:
我正在尝试使用最基本的可能代码输出梅森素数列表(我是 C++ 的初学者)。我的编译器 (XCode) 编译并成功运行它,但没有显示任何结果。当我运行它时,输出窗口就会消失。有人可以指出我的代码中的错误(不添加更多功能/文件等内容吗?)如果不可能,有人可以建议其他代码吗?谢谢。
//
// main.cpp
// meressene
//
// Created by Chiraag Thakur on 19/09/16.
// Copyright (c) 2016 Chiraag Thakur. All rights reserved.
//
#include <iostream>
#include<math.h>
using namespace std;
int main(int argc, const char * argv[]) {
int i, n;
unsigned long int p, prime, a;
for (i=2; i<=(p/2); ++i,++p) {
if(p%i==0){
;}
else if(p<1.79E+308){
a=pow(2, p);
prime=a-1;
for(n=2;n<=(prime/2);++n)
if(prime%n==0){
;
}
else{
cout<<prime<<"\n";
}
}
else if (p>=1.79E+308)
{exit(0);
}
}
return 0;
}
【问题讨论】:
-
打开终端并从那里运行程序是否有效?
-
您一直运行到
p/2,但您从未将p设置为值。 -
更喜欢在
main中使用return 0而不是exit(0)。 -
使用左移通常比
pow(2,x)更有效。 -
您应该在程序结束时提示用户按 Enter。这应该保持控制台窗口打开,直到按下 Enter 键。