ACM题目:素数求和问题
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/15 20:15:26
ACM题目:素数求和问题
描述
现在给你N个数(0
描述
现在给你N个数(0
应该是边界问题.循环时从0开始不好么?看下面注释
#include <stdio.h>
#include <math.h>
#pragma warning(disable:4996)
int prime(int Num)\x05
{\x05//if Num is a prime number, return 1
\x05int i;
\x05for (i = 2; i <= sqrt(Num); i++)
\x05\x05if (Num%i == 0)
\x05\x05\x05return(0);
\x05return(1);
}
main()//最好写成int main()
{
\x05int Qty, QtyLtl, Num;\x05//quantity
\x05int j, k, Sum[10] = { 0 };
\x05scanf("%d", &Qty);
\x05for (k=1; k<=Qty; k++)//改成for (k=0; k<Qty; k++),次数一样,范围不同(输入10的时,Sum下标不至于越界
\x05{
\x05\x05scanf("%d", &QtyLtl);
\x05\x05for (j=1; j<=QtyLtl; j++)//最好也改成for (j=0; j<QtyLtl; j++)
\x05\x05{
\x05\x05\x05scanf("%d", &Num);
\x05\x05\x05if ((prime(Num)==1) && (Num!=1))
\x05\x05\x05\x05Sum[k]=Sum[k]+Num;
\x05\x05}
\x05}
\x05for (k=1; k<=Qty; k++)//同样改成for (k=0; k<Qty; k++)
\x05{
\x05\x05printf("%d\n", Sum[k]);
\x05}
}
#include <stdio.h>
#include <math.h>
#pragma warning(disable:4996)
int prime(int Num)\x05
{\x05//if Num is a prime number, return 1
\x05int i;
\x05for (i = 2; i <= sqrt(Num); i++)
\x05\x05if (Num%i == 0)
\x05\x05\x05return(0);
\x05return(1);
}
main()//最好写成int main()
{
\x05int Qty, QtyLtl, Num;\x05//quantity
\x05int j, k, Sum[10] = { 0 };
\x05scanf("%d", &Qty);
\x05for (k=1; k<=Qty; k++)//改成for (k=0; k<Qty; k++),次数一样,范围不同(输入10的时,Sum下标不至于越界
\x05{
\x05\x05scanf("%d", &QtyLtl);
\x05\x05for (j=1; j<=QtyLtl; j++)//最好也改成for (j=0; j<QtyLtl; j++)
\x05\x05{
\x05\x05\x05scanf("%d", &Num);
\x05\x05\x05if ((prime(Num)==1) && (Num!=1))
\x05\x05\x05\x05Sum[k]=Sum[k]+Num;
\x05\x05}
\x05}
\x05for (k=1; k<=Qty; k++)//同样改成for (k=0; k<Qty; k++)
\x05{
\x05\x05printf("%d\n", Sum[k]);
\x05}
}