关于求素数的问题,麻烦各位帮忙看下。
给定一个数值,求出小于该整数的所有素数,并放到一个数组里面,且返回总的素数个数之和。程序代码:
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编辑过]