把2~100内的质数存放到数组a[]里的C++程序

来源:百度知道 编辑:UC知道 时间:2024/05/05 12:33:20
编一个C++程序,把2~100内的质数存放到数组a[]里。小弟找出2~100内的质数很容易就编好了,但是存到数组a[]里不会编,编出来总是质数和数组号重复发现,可能循环没套好。请达人解决,谢谢!

#include <stdio.h>
#include <math.h>
int boul (int x);
void main ()
{
int i,j,k=0,a[100];
printf ("从1到100的素数有:\n");
for (i=1,j=0;i<=100;i++)
if (boul(i)==1)//排除1
{
a[j]=i;//存放到数组a[]里
k++;//计数
j++;
}
for (i=0;i<k;i++)
printf ("%d ",a[i]);
printf ("\n");
}
int boul (int x)//判断2-1000的素数
{
int i;
if (x<=1)
return 0;
for (i=2;i<=sqrt(x);i++)
if (x%i==0)
return 0;
return 1;
}

索引的方法是比较简单的

#include<iostream>
#include<math.h>

using namespace std;

void main()
{
const int SIZE = 100;
int a[SIZE];
int b = sqrt(SIZE);
int ii, jj;

for (ii = 0; ii < SIZE; ++ii) {
a[ii] = 1;
}

for (ii = 2; ii < b; ++ii) {
for (jj = ii; j