程序打印素数

时间:2019-01-04 16:18:30

标签: c++

首先,这是一项作业,StackOverflow现在有不同类型的问题,我选择了“我需要有关作业问题的帮助”。

程序从此表达式中打印范围(k至n)的所有素数:

((1 + sin(0.1*i))*k) + 1, i = 1, 2, ..., N.

该代码仅适用于第一个测试用例。我在第二个也是最后一个案例中收到“由于超时而终止”。 作业已上传到HackerRank,我不知道如何解决。我完成了任务想要的所有事情。

约束:

k <= 10^18

n <= 10^3 
  

输入格式:

     

不超过100个示例。每个示例在同一行上都有2个正整数。

     

输出格式:

     

将每个数字打印在单独的行上。

     

样本输入:

     

4 10

     

500100

     

样本输出:

     

5

     

17

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    long long k, n;
    int j;
    while (cin >> k >> n) {
        if (n>1000 && k>1000000000000000000) continue;

        int count = 0;
        for (int i = 1; i <= n; i++) {
            int result = ((1 + sin(0.1*i)) * k) + 1;
            for (j = 2; j < res; j++) {
                if (result % j == 0) break;
            }
            if (j == result) count++;
        }
        cout << count << endl;

    }
    system("pause");
}

0 个答案:

没有答案