C ++找到第一个素数

时间:2018-12-28 10:24:39

标签: c++ loops for-loop

找到第一个素数。

输出是查找第一个素数。出问题了,但是 不显示错误。我不知道该怎么办,请有人帮我。

这是我的代码:

#include <iostream>
#define MAX 100
using namespace std;

void nhap(int a[] ,int &n)
{
  do
  {
      cout<< "\nnhap so n: ";
      cin >> n;
      if(n<0 || n> MAX)
        cout << "\nsai roi, moi nhap lai ";
  }
  while(n<0 || n >MAX);

  for(int i=0; i<n; i++)
  {
    cout << "a[" << i << "]= ";
    cin >> a[i];
  }
}

void xuat(int a[], int &n)
{
  for(int i=0; i <n; i++)
    cout << a[i] << " ";
}

int nguyentodt(int a[], int &n)
{
  for(int i=0; i<n; i++)
  {
    int d=0;
    for(int s=0; s<=a[i]; s++ )
    {
      if( a[i]% s ==0)
        d++;
    }
    if(d==2)
      return a[i];
  }
  return -1;
}

int main()
{
  int n;
  int a[MAX];
  nhap(a,n);
  xuat(a,n);
  cout << " \nso nguyen to dau tien la: ";
  cout << nguyentodt(a,n);
  return 0;
}

1 个答案:

答案 0 :(得分:1)

下面的条件检查从0开始的循环:

if (a[i] % s == 0)

正如我所说的,s0开始,因此第一步您要除以零例外。您需要从1开始循环;