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出来结果的吗?

时间: 2024-08-05 06:01:24

NYOJ题目22 素数求和的相关文章

nyist 22 素数求和

#include<stdio.h>int main(){int m,n,i,j,a,b;scanf("%d\n",&m);while(m--) // m组数据 { int sum=0; scanf("%d\n",&n); // 某一组 n个数 for(i=0;i<n;i++){ scanf("%d",&a); //分别输出这 n个数 变量afor(j=2;j<=a-1;j++) // 素数判定 if

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 样例输

南阳理工OJ之素数求和问题

---------------------------------------------- AC代码: 1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 preprocess(); 8 9 Scanner sc=new Scanner(System.in); 10 11 int times=sc.nextInt(); 12 while(time

素数求和问题

素数求和问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 现在给你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

梦工场实验室 素数求和 神奇的素数筛选

问题 G: 素数求和 时间限制: 1 Sec  内存限制: 256 MB提交: 142  解决: 30[提交][状态][讨论版] 题目描述 输入一个自然数n,求小于等于n的素数之和 输入 输出 样例输入 2 样例输出 2 提示 测试样例保证 2 <= n <= 2,000,000 埃拉托斯特尼筛法(Sieve of Eratosthenes) #include<stdio.h> #include<string.h> #include<stdlib.h> #i

NYOJ 420 P次方求和

p次方求和 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 一个很简单的问题,求1^p+2^p+3^p+--+n^p的和. 输入 第一行单独一个数字t表示测试数据组数.接下来会有t行数字,每行包括两个数字n,p, 输入保证0<n<=1000,0<=p<=1000. 输出 输出1^p+2^p+3^p+--+n^p对10003取余的结果,每个结果单独占一行. 样例输入 2 10 1 10 2 样例输出 55 385 AC码: #include<std

2014-4-25 运行号:837134 素数求和

#include <iostream>#include <cstdio>#include <cstdlib>#include <string>#include <cmath>#include <cstring>#include <algorithm>using namespace std;bool pre_arry[1100];void pre_cnt() //素数筛{    memset(pre_arry,1,sizeo

素数求和

#include <iostream> using namespace std; int fun(int a) { if(a==1) return 0; for(int i=2;i<a;i++) { if(a%i==0) return 0; } return 1; } int main() { int x,M,N; cout<<"测试数据组数: "; cin>>M; while(M--) { int i,sum=0; cout<<&

题目22

素数距离问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度.如果左右有等距离长度素数,则输出左侧的值及相应距离.如果输入的整数本身就是素数,则输出该素数本身,距离输出0 输入 第一行给出测试数据组数N(0<N<=10000)接下来的N行每行有一个整数M(0<M<1000000), 输出 每行输出两个整数 A B.其中A表示离相应测试数据最近的素数,B表示其间的距离.