69,382
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <math.h>
#pragma warning(disable:4996)
int prime(int Num)
{ //if Num is a prime number, return 1
int i;
for (i = 2; i <= sqrt(Num); i++)
if (Num%i == 0)
return(0);
return(1);
}
main()
{
int Qty, QtyLtl, Num; //quantity
int j, k, Sum[10] = { 0 };
scanf("%d", &Qty);
for (k=1; k<=Qty; k++)
{
scanf("%d", &QtyLtl);
for (j=1; j<=QtyLtl; j++)
{
scanf("%d", &Num);
if ((prime(Num)==1) && (Num!=1))
Sum[k]=Sum[k]+Num;
}
}
for (k=1; k<=Qty; k++)
{
printf("%d\n", Sum[k]);
}
}
#include <stdio.h>
#include <math.h>
int prm[1001]={0};//0表示是素数,1表示不是
void prime()
{ //if Num is a prime number, return 1
int i,Num=2;
prm[1]=1;
prm[0]=1;
while(Num<=1000)
{for (i = 2; i <= sqrt(Num); i++)
if (Num%i == 0)
{prm[Num]=1;
break;}
Num++;
}
}
main()
{
int Qty, QtyLtl, Num; //quantity
int j, k, Sum[10] = { 0 };
scanf("%d", &Qty);
prime();
for (k=0; k<Qty; k++)
{
scanf("%d", &QtyLtl);
for (j=0; j<QtyLtl; j++)
{
scanf("%d", &Num);
if (prm[Num]==0) //只需查表prm中是不是素数直接判断就可以了。
Sum[k]=Sum[k]+Num;
}
}
for (k=0; k<Qty; k++)
{
printf("%d\n", Sum[k]);
}
}
int main(void)
return 0;
改成这种的,不要再直接main()了