在C++中打印所有低于n的质数(文件崩溃)

在C++中打印所有低于n的质数(文件崩溃)

问题描述:

我写了一个C++程序,打印所有低于n的素数,但程序在执行时不断崩溃。在C++中打印所有低于n的质数(文件崩溃)

#include <iostream> 

using namespace std; 

bool premier(int x) { 
    int i = 2; 
    while (i < x) { 
     if (x % i == 0) 
      return false; 
     i++; 
    } 
    return true; 
} 

int main() { 
    int n; 
    int i = 0; 
    cout << "entrer un entier n : "; 
    cin >> n; 
    while (i < n) { 
     if (n % i == 0 && premier(i)) 
      cout << i; 
     i++; 
    } 
    ; 
} 
+1

调查此问题的正确工具是调试器。 – chris

+6

你用'i == 0'执行'n%i'' –

+0

从'i = 1'开始而不是 –

由于Igor指出,i为零时首次n%i完成。既然你只想素数,最小的素数是2,我建议你初始化i2而不是0

您想要打印小于n的所有素数,并且具有检查素数的功能。

只是

while (i < n){ 
    if ( premier(i) == true) 
     cout<<i; 
    i++; 
} 

虽然印刷,添加一些字符分隔的数字序能够区分它们像

cout<<i<<endl; 

P.S:我想你把这个C++程序。不是脚本。

编辑:This可能会让你感兴趣。