编写一个判断素数的函数ifp

下面的程序只能筛选出素数但是没有求和,怎么加入求和的代码? #define N| #include"stdio.h" #include"math.hm int ifp(int a[]); int main() { int i; int a[N]; for(i=0;i

请把代码补全,这里只能看到部分代码。

/* Note:Your choice is C IDE */
#include "stdio.h"
#include"math.h" 
#define N 5
int ifp(int a[]); 
int main() { 
	int i; 
	int a[N]; 
	for(i=0;i<N;i++)
		scanf("%d",&a[i]); 
	printf("\n素数的和是:%d\n",ifp(a));
} 
int ifp(int a[]) { 
	int i,j; 
	int num=0; 
	int flag=0;
	for(i=0;i<N;i++) { 
		flag = 0;
		for(j=2;j<i;j++) { 
			if(a[i] % j==0){
				flag = 1;
				break;
			}
			
		} 
		if(!flag) {
			num+= a[i]; 
			printf("%d\t",a[i]);
		}
	} 
	
	return num; 
}

 

写了两个函数,看看能不能满足你的要求,如有帮助,请采纳一下,谢谢。

//判断n是否是素数,是素数返回1,否则返回0
int ifp(int n)
{
	for (int i = 2;i < n; i++)
	{
		if ( n % i == 0)
		{
			return 0;
		}
	}
	return 1;
}
//判断a[]中素数的个数,并求素数的和,n是数组a的大小,sum是素数的和
//返回值是素数的个数
int ifp(int a[],int n,int &sum)
{
	sum = 0;
	int nmb = 0;
	for (int i = 0; i < n;i++)
	{
		int is = 1;
		int j = 0;
		for (j = 2; j < a[i];j++)
		{
			if (a[i] % j == 0)
			{
				is = 0;
				break;
			}
		}
		if (is == 1) //是素数
		{
			nmb++;
			sum += a[i];
		}
	}
	return nmb;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632