关于求素数的问题,麻烦各位帮忙看下。
给定一个数值,求出小于该整数的所有素数,并放到一个数组里面,且返回总的素数个数之和。
程序代码:int fun(int lim, int aa[MAX])
{
int i,j,k=0;
for(i=2;i<=lim;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)break;
}
if(j>=i) //这个地方无法理解,去掉 >号,则结果有很大的差别。
aa[k++]=i;
}
return k;
}源代码
程序代码:#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
int fun(int lim, int aa[MAX])
{
int i,j,k=0;
for(i=2;i<=lim;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)break;
}
if(j>=i)
aa[k++]=i;
}
return k;
}
void main()
{
FILE *wf;
int limit,i,sum;
int aa[MAX];
system("CLS");
printf("输入一个整数:");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0) /*每行输出10个数*/
printf("\n ");
printf("%5d ",aa[i]);
}
/******************************/
wf=fopen("out.dat","w");
sum=fun(15,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0) /*每行输出10个数*/
fprintf(wf,"\n");
fprintf(wf,"%5d ",aa[i]);
}
fclose(wf);
/*****************************/
}[此贴子已经被作者于2018-3-6 17:03编辑过]



