結果

問題 No.106 素数が嫌い!2
ユーザー bal4ubal4u
提出日時 2019-04-12 13:10:50
言語 C
(gcc 12.3.0)
結果
AC  
実行時間 29 ms / 5,000 ms
コード長 761 bytes
コンパイル時間 216 ms
コンパイル使用メモリ 30,208 KB
実行使用メモリ 11,644 KB
最終ジャッジ日時 2024-09-14 00:24:47
合計ジャッジ時間 1,352 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 29 ms
11,556 KB
testcase_01 AC 27 ms
11,620 KB
testcase_02 AC 26 ms
11,564 KB
testcase_03 AC 25 ms
11,636 KB
testcase_04 AC 26 ms
11,560 KB
testcase_05 AC 28 ms
11,564 KB
testcase_06 AC 28 ms
11,632 KB
testcase_07 AC 28 ms
11,428 KB
testcase_08 AC 26 ms
11,556 KB
testcase_09 AC 26 ms
11,628 KB
testcase_10 AC 28 ms
11,608 KB
testcase_11 AC 27 ms
11,564 KB
testcase_12 AC 28 ms
11,644 KB
testcase_13 AC 26 ms
11,588 KB
testcase_14 AC 26 ms
11,620 KB
testcase_15 AC 27 ms
11,596 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

// yukicoder: No.106 素数が嫌い!2
// 2019.4.12 bal4u
// Catalan(カタラン数)の計算
// c_0 = 1, c_n = c_n-1*2*(2n-1)/(n+1)

#include <stdio.h>

#include <stdio.h>
#include <ctype.h>

#define MAX  2000000
#define SQRT 1414
char notPrime[MAX+5] = { 1,1,0,0,1 };			// zero: if prime
int factor[MAX+5];

void sieve()
{
	int i, j;
	for (i = 3; i <= SQRT; i += 2) if (!notPrime[i]) {
		for (j = i * i; j <= MAX; j += i) notPrime[j] = 1;
	}
	for (i = 2; i <= MAX; i += 2) factor[i] = 1;
	for (i = 3; i <= MAX; i += 2) if (!notPrime[i]) {
		for (j = i; j <= MAX; j += i) factor[j]++;
	}
}

int main()
{
	int i, N, K, ans;
	sieve();
	scanf("%d%d", &N, &K);
	ans = 0; for (i = 2; i <= N; i++) if (factor[i] >= K) ans++;
	printf("%d\n", ans);
	return 0;
}
0