找到第一个素数。
输出是查找第一个素数。出问题了,但是 不显示错误。我不知道该怎么办,请有人帮我。
这是我的代码:
#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;
}
答案 0 :(得分:1)
下面的条件检查从0
开始的循环:
if (a[i] % s == 0)
正如我所说的,s
从0
开始,因此第一步您要除以零例外。您需要从1
开始循环;