• NYOJ题目22 素数求和


    题目描述:

    现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。
    输入
    第一行给出整数M(0<M<10)代表多少组测试数据
    每组测试数据第一行给你N,代表该组测试数据的数量。
    接下来的N个数为要测试的数据,每个数小于1000
    输出
    每组测试数据结果占一行,输出给出的测试数据的所有素数和
    样例输入
    3
    5
    1 2 3 4 5
    8
    11 12 13 14 15 16 17 18
    10
    21 22 23 24 25 26 27 28 29 30
    样例输出
    10
    41
    52

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    int m;
    scanf("%d",&m);
    while(m--)
    {
    int b,n,j,i,a[1000];
    scanf("%d",&n);
    int sum=0;
    for(i=0;i<=n;i++)
    {
    getchar();
    scanf("%d",&a[i]);
    if(a[i]==1)continue;
    else
    {
    b=sqrt(a[i]);
    for(j=2;j<=b;j++)
    if(a[i]%j==0)break;
    if(j<=b)continue;
    else sum=sum+a[i];
    }
    }
    printf("%d",sum);
    }
    return 0;
    }

    运行不对,当输入1 2 3 4 5时 按Enter键想出来结果,确实换行再进行输入,随意输入一个数之后再按Enter就出来结果。

    不懂为啥是这样的结果。理应不是将一行判断后按Enter出来结果的吗?

  • 相关阅读:
    jwt原理
    图书管理系统后端
    图书管理系统前端
    图书管理前端页面
    Linux多任务: exec 和fork()的联用
    CPU 字长与存储器位宽不一致处理
    关键字volatule
    linux C 中断程序:利用队列保存中断类型
    Linux下的Make与Makefile
    C :assert() 的用法
  • 原文地址:https://www.cnblogs.com/hys1258414454/p/7221795.html
Copyright © 2020-2023  润新知