c语言 编写一个函数 搜索出一组数中的素数 并将它保存到另一个数组中

2024-12-23 13:36:47
推荐回答(2个)
回答1:

//这个给你参考

#include
#include
#include
#include
#include

bool is_prime(unsigned int n)
{
if(n<2)
{
return false;
}
unsigned int ncnt=(unsigned int)sqrt(n*1.0);
for(unsigned int i=2;i<=ncnt;i++)
{
if(n%i==0)
return false;
}

return true;}
unsigned int search_prime(int* src,int* res,int n)
{
// assert(src!=NULL&&res!=NULL); //

memset(res,0,sizeof(int)*n);
unsigned int ncnt=0;
for(int i=0;i {
if(is_prime(*src))
{
*res++=*src;
++ncnt;
}
src++;
}
return ncnt;
}

int main()
{
int test[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int res[20]={0};
int ncnt=search_prime(test,res,20);
printf("%d\n",ncnt);
for(int i=0;i {
printf("%d ",res[i]);
}
printf("\n");

return 0;}

回答2:

给你个例子 自己改改, 编程不动脑子是永远学不会的
#include
#include
void Sprint(int &);
int main()
{
int num=0;
cin>>num;
while(num)
{
Sprint(num);
cout< cin>>num;
}
return 0;
}
void Sprint(int &n)
{
int i=1,j=0,judg=1;
for(i=2;i<=n;judg=1,i++)
{
for(j=2;j<=(int)sqrt(i);j++)
if(i%j==0 && i!=j)
judg=0;
if(judg)
cout<}
}