結果
| 問題 |
No.407 鴨等素数間隔列の数え上げ
|
| コンテスト | |
| ユーザー |
moyashi_senpai
|
| 提出日時 | 2016-08-06 00:11:35 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 86 ms / 1,000 ms |
| コード長 | 1,219 bytes |
| コンパイル時間 | 840 ms |
| コンパイル使用メモリ | 87,780 KB |
| 実行使用メモリ | 23,296 KB |
| 最終ジャッジ日時 | 2024-12-15 22:32:35 |
| 合計ジャッジ時間 | 4,785 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 31 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:52:32: warning: zero-length gnu_printf format string [-Wformat-zero-length]
52 | printf("");
| ^~
main.cpp:40:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
40 | scanf("%d %d", &n, &l);
| ~~~~~^~~~~~~~~~~~~~~~~
main.cpp:44:26: warning: iteration 4999998 invokes undefined behavior [-Waggressive-loop-optimizations]
44 | if (arr[i]) {
| ~~~~~^
main.cpp:43:33: note: within this loop
43 | for (int i = 2; 5000012 > i; i++) {
| ~~~~~~~~^~~
ソースコード
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <cstring>
#include <numeric>
#include <algorithm>
#include <functional>
#include <array>
#include <map>
#include <queue>
#include <limits.h>
#include <stack>
using namespace std;
#define Getsign(n) ((n > 0) - (n < 0))
#define QWERTYR(c) (c == 'y' || c == 'u' || (c >= 'h' && c <= 'p') ? true : false)
map<string, int> roma_time = { { "I",1 },{ "II",2 },{ "III",3 },{ "IIII",4 },{ "V",5 },{ "VI",6 },{ "VII",7 },{ "VIII",8 },{ "IX",9 },{ "X",10 },{ "XI",11 },{ "XII",12 } };
typedef vector<int> Ivec;
typedef pair<int, int> pii;
int arr[5000000] = {};
void Eratosthenes(int N) {
for (int i = 0; i < N; i++) {
arr[i] = 1;
}
for (int i = 2; i < sqrt(N); i++) {
if (arr[i]) {
for (int j = 0; i * (j + 2) < N; j++) {
arr[i *(j + 2)] = 0;
}
}
}
}
int main() {
int n, l;
scanf("%d %d", &n, &l);
Eratosthenes(5000012);
int soscou = 0;
for (int i = 2; 5000012 > i; i++) {
if (arr[i]) {
arr[soscou] = i;
soscou++;
}
}
long long int sum = 0;
for (int i = 0; (n - 1)*arr[i] <= l; i++) {
if (arr[i] == 4999999) {
printf("");
}
sum += l - (n - 1)*arr[i] + 1;
}
printf("%lld\n", sum);
return 0;
}
moyashi_senpai