結果
問題 | No.843 Triple Primes |
ユーザー | claw88 |
提出日時 | 2019-06-28 21:55:12 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 6,749 bytes |
コンパイル時間 | 2,588 ms |
コンパイル使用メモリ | 117,948 KB |
実行使用メモリ | 26,292 KB |
最終ジャッジ日時 | 2024-09-19 14:01:08 |
合計ジャッジ時間 | 5,078 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 25 ms
26,072 KB |
testcase_01 | AC | 32 ms
22,196 KB |
testcase_02 | AC | 25 ms
23,976 KB |
testcase_03 | AC | 25 ms
23,844 KB |
testcase_04 | AC | 25 ms
26,016 KB |
testcase_05 | AC | 24 ms
24,144 KB |
testcase_06 | AC | 26 ms
24,040 KB |
testcase_07 | AC | 30 ms
24,356 KB |
testcase_08 | AC | 32 ms
24,244 KB |
testcase_09 | AC | 31 ms
22,196 KB |
testcase_10 | AC | 29 ms
26,100 KB |
testcase_11 | AC | 30 ms
26,288 KB |
testcase_12 | AC | 31 ms
26,176 KB |
testcase_13 | AC | 32 ms
24,248 KB |
testcase_14 | AC | 31 ms
23,972 KB |
testcase_15 | AC | 31 ms
26,228 KB |
testcase_16 | AC | 32 ms
24,096 KB |
testcase_17 | AC | 26 ms
24,024 KB |
testcase_18 | AC | 26 ms
23,844 KB |
testcase_19 | AC | 25 ms
23,972 KB |
testcase_20 | AC | 28 ms
23,992 KB |
testcase_21 | AC | 26 ms
25,828 KB |
testcase_22 | AC | 29 ms
23,872 KB |
testcase_23 | AC | 29 ms
23,988 KB |
testcase_24 | AC | 27 ms
23,860 KB |
testcase_25 | AC | 26 ms
26,036 KB |
testcase_26 | AC | 30 ms
24,096 KB |
testcase_27 | AC | 26 ms
25,996 KB |
testcase_28 | AC | 31 ms
24,484 KB |
testcase_29 | AC | 29 ms
24,116 KB |
testcase_30 | AC | 32 ms
26,180 KB |
testcase_31 | AC | 28 ms
26,176 KB |
testcase_32 | AC | 25 ms
23,840 KB |
testcase_33 | AC | 27 ms
25,908 KB |
testcase_34 | AC | 27 ms
21,820 KB |
testcase_35 | AC | 31 ms
24,372 KB |
testcase_36 | AC | 26 ms
23,860 KB |
testcase_37 | AC | 28 ms
21,688 KB |
testcase_38 | AC | 29 ms
24,120 KB |
testcase_39 | AC | 32 ms
26,292 KB |
testcase_40 | AC | 25 ms
26,016 KB |
testcase_41 | AC | 26 ms
25,880 KB |
testcase_42 | AC | 30 ms
26,120 KB |
testcase_43 | AC | 30 ms
24,240 KB |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; using System.Collections.Generic; using System.Linq; using System.IO; using SB = System.Text.StringBuilder; //using System.Threading.Tasks; //using System.Text.RegularExpressions; //using System.Globalization; //using System.Diagnostics; using static System.Console; using System.Numerics; using static System.Math; using pair = Pair<int, int>; class Program { static void Main() { //SetOut(new StreamWriter(OpenStandardOutput()) { AutoFlush = false }); new Program().solve(); Out.Flush(); } readonly Scanner cin = new Scanner(); readonly int[] dd = { 0, 1, 0, -1, 0 }; //→↓←↑ readonly int mod = 1000000007; readonly int dom = 998244353; bool chmax<T>(ref T a, T b) where T : IComparable<T> { if (a.CompareTo(b) < 0) { a = b; return true; } return false; } bool chmin<T>(ref T a, T b) where T : IComparable<T> { if (b.CompareTo(a) < 0) { a = b; return true; } return false; } struct data { public int x, y, z; public data(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } } void solve() { int N = cin.nextint; eratos(N); var P = new[] { new data(2,2,2), new data(2,7,3), new data(7,2,3), new data(2,23,5), new data(23,2,5), new data(2,47,7), new data(47,2,7), new data(2,167,13), new data(167,2,13), new data(2,359,19), new data(359,2,19), new data(2,839,29), new data(839,2,29), new data(2,1367,37), new data(1367,2,37), new data(2,1847,43), new data(1847,2,43), new data(2,2207,47), new data(2207,2,47), new data(2,3719,61), new data(3719,2,61), new data(2,5039,71), new data(5039,2,71), new data(2,7919,89), new data(7919,2,89), new data(2,10607,103), new data(10607,2,103), new data(2,11447,107), new data(11447,2,107), new data(2,16127,127), new data(16127,2,127), new data(2,17159,131), new data(17159,2,131), new data(2,19319,139), new data(19319,2,139), new data(2,29927,173), new data(29927,2,173), new data(2,36479,191), new data(36479,2,191), new data(2,44519,211), new data(44519,2,211), new data(2,49727,223), new data(49727,2,223), new data(2,54287,233), new data(54287,2,233), new data(2,57119,239), new data(57119,2,239), new data(2,66047,257), new data(66047,2,257), new data(2,85847,293), new data(85847,2,293), new data(2,97967,313), new data(97967,2,313), new data(2,113567,337), new data(113567,2,337), new data(2,128879,359), new data(128879,2,359), new data(2,177239,421), new data(177239,2,421), new data(2,196247,443), new data(196247,2,443), new data(2,201599,449), new data(201599,2,449), new data(2,218087,467), new data(218087,2,467), new data(2,241079,491), new data(241079,2,491), new data(2,273527,523), new data(273527,2,523), new data(2,292679,541), new data(292679,2,541), new data(2,323759,569), new data(323759,2,569), new data(2,344567,587), new data(344567,2,587), new data(2,368447,607), new data(368447,2,607), new data(2,426407,653), new data(426407,2,653), new data(2,458327,677), new data(458327,2,677),}; //int cnt = 0; //foreach (var r in prime) //{ // long L = (long)r * r; // foreach (var p in prime) // { // if (p > L) // { // break; // } // if (L - p <= N && is_prime[L - p]) // { // WriteLine($"new data({p},{L - p},{r}),"); // } // } //} int cnt = 0; foreach (var item in P) { if (item.x <= N && item.y <= N && item.z <= N) { cnt++; } } WriteLine(cnt); } List<int> prime; bool[] is_prime; void eratos(int n) { prime = new List<int>(); is_prime = new bool[n + 1]; for (int i = 0; i <= n; i++) is_prime[i] = true; is_prime[0] = is_prime[1] = false; for (int i = 0; i <= n; i++) { if (is_prime[i]) { prime.Add(i); for (int j = 2 * i; j <= n; j += i) is_prime[j] = false; } } } int[] P; void phi(int n) { P = new int[n + 1]; for (int i = 0; i <= n; i++) P[i] = i; for (int i = 2; i <= n; i++) { if (is_prime[i]) { P[i] -= P[i] / i; for (int j = 2 * i; j <= n; j += i) P[j] -= P[j] / i; } } } } static class Ex { public static void join<T>(this IEnumerable<T> values, string sep = " ") => WriteLine(string.Join(sep, values)); public static string concat<T>(this IEnumerable<T> values) => string.Concat(values); public static string reverse(this string s) { var t = s.ToCharArray(); Array.Reverse(t); return t.concat(); } public static int lower_bound<T>(this IList<T> arr, T val) where T : IComparable<T> { int low = 0, high = arr.Count; int mid; while (low < high) { mid = ((high - low) >> 1) + low; if (arr[mid].CompareTo(val) < 0) low = mid + 1; else high = mid; } return low; } public static int upper_bound<T>(this IList<T> arr, T val) where T : IComparable<T> { int low = 0, high = arr.Count; int mid; while (low < high) { mid = ((high - low) >> 1) + low; if (arr[mid].CompareTo(val) <= 0) low = mid + 1; else high = mid; } return low; } } class Pair<T, U> : IComparable<Pair<T, U>> where T : IComparable<T> where U : IComparable<U> { public T f; public U s; public Pair(T f, U s) { this.f = f; this.s = s; } public int CompareTo(Pair<T, U> a) => f.CompareTo(a.f) != 0 ? f.CompareTo(a.f) : s.CompareTo(a.s); public override string ToString() => $"{f} {s}"; } class Scanner { string[] s; int i; readonly char[] cs = new char[] { ' ' }; public Scanner() { s = new string[0]; i = 0; } public string[] scan => ReadLine().Split(); public int[] scanint => Array.ConvertAll(scan, int.Parse); public long[] scanlong => Array.ConvertAll(scan, long.Parse); public double[] scandouble => Array.ConvertAll(scan, double.Parse); public string next { get { if (i < s.Length) return s[i++]; string st = ReadLine(); while (st == "") st = ReadLine(); s = st.Split(cs, StringSplitOptions.RemoveEmptyEntries); i = 0; return next; } } public int nextint => int.Parse(next); public long nextlong => long.Parse(next); public double nextdouble => double.Parse(next); }