首先,这是一项作业,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");
}