【问题标题】:Program to Calculate Primes between 2 numbers - SPOJ Problem2计算两个数之间素数的程序 - SPOJ Problem2
【发布时间】:2015-05-12 16:12:56
【问题描述】:

这是针对 SPOJ 问题 2 - http://www.spoj.com/problems/PRIME1/

我在这里引用它 -

问题: Peter 想为他的密码系统生成一些素数。帮助他!你的任务是生成两个给定数字之间的所有素数!

输入

输入以单行中的测试用例数量 t (t

输出

对于每个测试用例打印所有质数 p 使得 m

#include <iostream>
using namespace std;

int main() {
 // Prime Generator
 int cases;
 int z;

 cin >> cases;
 int lower[cases];
 int upper[cases];

 for (int l = 0; l < cases; l++) {
    cin >> lower[l];
    cin >> upper[l];
 }

 for (int n = 0; n < cases; n ++) {

    for (int i = lower[n]; i <= upper[n]; i++ ) {

        z = 1;
        for (int x = 2; x < i; x++) {
            if (i % x == 0) {
                z = 0;
                break;
            }
        }

        if (i == 1) {
            z = 0;
        }

        if (z == 1) {
            cout << i << endl;
        }
    }
    cout << endl;
 }
}

为什么这段代码不起作用?显示超出时间限制。

【问题讨论】:

  • 你需要一个更好的算法。你有没有实现过sieve of eratosthenes
  • 我对编程比较陌生,但是是的,我正在研究筛子。我可以知道否决票的原因吗?我的意思是你们通常对新手这么苛刻吗?

标签: c++ logic primes


【解决方案1】:

您应该学习在 a-b

【讨论】:

    猜你喜欢
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多