中易网

6. 编写函数int fun (int lim, int aa[MAX] ),该函数的功能是:

答案:3  悬赏:20  
解决时间 2021-03-06 02:01
求出小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。然后编写主函数调用它。
最佳答案
#include <stdio.h>
#include <math.h>
#define MAX 100
int aa[MAX];
int fun (int lim, int aa[MAX] )
{
int i,j,k=0,m,num=0,leap=1;
if(lim>=3)
{
aa[0]=2;
k=1;
num=1;
}
for(j=3;j<lim;j++)
{
m=sqrt(j+1);
for(i=2;i<=m;i++)
if(j%i==0)
{leap=0;break;}
if(leap) {
aa[k++]=j;
num++;
}
leap=1;
}
return num;
}

void main()
{
int lim,num;
printf("请输入一个整数\n");
scanf("%d", &lim);
num=fun(lim,aa);
printf("\n素数的个数: %d",num);
}
全部回答
int fun(int lim,int aa[max]) { int i,k=lim,j=0,m=0; for(k=2;k<=lim;k++) { for(i=2;i<=k-1;i++) { if(k%i==0) { j+=1; break; } } if(j==0) { aa[m]=k; m+=1; } j=0; } return (m); }
#include #define max 300 int fun(int lim,int aa[max]); int main() { int a,b,bb[max],i; printf("输入一个大于或等于2的整数:\n"); scanf("%d",&a); b=fun(a,bb); printf("质素的个数是:%d\n",b); printf("这些素数是:\n"); for(i=0;i<=b-1;i++) printf("%4d",bb[i]); printf("\n"); return 0; } int fun(int lim,int aa[max]) { int i,k=lim,j=0,m=0; for(k=2;k<=lim;k++)/////////////// { for(i=2;i<=k-1;i++) { if(k%i==0) j+=1; } if(j==0) { //for(;m<=max;m++) //aa[m]=k; aa[m++]=k; } j=0; } //m+=1; return (m); } 打“//”的为修改的地方, 注意本程序是求出小于等于lim的所有素数, 如要变成小于,将"///////"改为k
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯