编写函数int prime(int a[]),

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:40:10
编写函数int prime(int a[]),其功能是用筛选法求100以内的素数,并将求得的素数依次写入a数组中,函数返回求得的素数个数。然后编写main函数调用prime函数,并输出计算结果。
筛选法是指从小到大筛去一个以知素数的所有倍数,
例如,根据2可筛去4,6,8,...98,100等数.然后根据3可筛去9,15,...99等数

楼上的,题目看清楚
#include<stdio.h>
int prime(int a[]){
int i,j,k=0;
for(i=0;i<100;i++)a[i]=0;
for(i=2;i<100;i++){
if(!a[i]){
k++;
for(j=2*i;j<100;j+=i){
a[j]=1;
}
}
}
return(k);
}
void main(){
int a[100];
printf("%d",prime(a));
}

#include <stdio.h>

int prime(int a[])
{int i,j,k,s;
int arr[99];/* 分别表示2~100 */
for(i=0;i<99;i++)
arr[i]=i+2; /* arr初始化 */
for(i=0;i<99;i++)
{k=arr[i];
if(k)
for(j=i+1;j<99;j++)
{if(!(arr[j]%k)) arr[j]=0;
}
}
i=0;j=i+1;
k=0;
while(j<99)
{if(arr[i])
{a[i]=arr[i];k++;i++;}
else if(arr[j]) {arr[i]=arr[j];arr[j]=0;a[i]=arr[i];i++;k++;}
j++;
}
return k;
}

main()
{int n,i;
int a[30];
for(i=0;i<30;i++)