2 qq 32293809 qq_32293809 于 2016.03.17 22:31 提问

c++求素数和的问题,求查问题 10C
c++

求素数和
描述
对于给定的一个正整数序列,求它包含的所有素数的和。

输入
输入的第一行是一个整数n,在区间[1,10000]之中。后面紧跟n行,每一行是一个整数,在区间[1,100]之中。

输出
对输入的n个正整数中所有的素数求和,并把和在一行中输出。

样例输入
5
8
2
3
7
10

样例输出
12
我写的代码,自己试是对的,但提交结果有错,不是为何
#include
using namespace std;
int main()
{
int n;
cin >> n;
int sum = 0, x;
bool susu = true;
for (int i = 0; i < n; i++)
{
cin >> x;
if (x == 1)
{
sum = sum + 1;
}
else if (x == 2)
{
sum = sum + 2;
}
else
{
for (int j = 2; j < x; j++)
{
if (x % j == 0)
{
susu = false;
break;
}
}
if (susu ==true)
{
sum = sum + x;
}
susu = true;
}
}
cout << sum;
//system("pause");
return 0;
}

4个回答

sinat_32660629
sinat_32660629   2016.03.17 23:17

循环套循环一般都是超时的。

qq_32293809
qq_32293809 可似乎不是超时的问题,显示是答案有误
一年多之前 回复
jibingzhizi
jibingzhizi   2016.03.17 23:38

1不是素数,2也不用特地拿出来,2过不了 j < x不会循环
#include
using namespace std;
int main()
{
int n;
cin >> n;
int sum = 0, x;
bool susu = true;
for (int i = 0; i < n; i++)
{
cin >> x;

        for (int j = 2; j < x; j++)
        {
            if (x % j == 0)
            {
                susu = false;
                break;
            }
        }
        if (susu ==true)
        {
        sum = sum + x;
        }
        susu = true;

}

cout << sum;
//system("pause");
return 0;
}

xianfajushi
xianfajushi   2016.03.18 09:18
huixion
huixion   2016.03.20 19:22

Java 求第100001个素数的算法,复杂度小于N平方,思路可以参考

public class SuShu
{
public static void main(String[] args)
{
int N = 1000 * 1000 * 10;
int x = 100001;

    byte[] a = new byte[N];

    for(int i=2; i<N/2; i++)
    {
        if(a[i]==1) continue;  //  和数没有资格参加筛法

        for(int k=2; k<=N/i; k++)
        {
            if(i*k<N) a[i*k] = 1;
        }
    }


    int m = 0;
    for(int i=2; i<N; i++)
    {
        if(a[i]==0)
        {
            m++;
            if(m==x) System.out.print(i + " "); 
        }
    }


    System.out.println("m=" + m);
}

}

huixion
huixion 自己电脑可以运行,但提交出错的话,一般是程序运行超时了或者没有按照提交系统的格式去提交
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!