using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = NN; var isprime = Enumerable.Repeat(true, n * 3 + 1).ToArray(); isprime[0] = false; isprime[1] = false; for (var i = 2; i < isprime.Length; ++i) if (isprime[i]) { for (var j = i * 2; j < isprime.Length; j += i) isprime[j] = false; } var abc = new List(); var xlist = new List(); for (var i = 2; i <= n; ++i) if (isprime[i]) abc.Add(i); for (var i = 2; i < isprime.Length; ++i) if (isprime[i]) xlist.Add(i); var ablist = new int[n * 2 + 1]; for (var i = 0; i < abc.Count; ++i) { if (abc[i] * 2 < ablist.Length) ++ablist[abc[i] * 2]; for (var j = i + 1; j < abc.Count; ++j) ablist[abc[i] + abc[j]] += 2; } var ans = 0L; foreach (var x in xlist) { foreach (var c in abc) { if (x - c >= ablist.Length) continue; if (x <= c) break; ans += ablist[x - c]; } } foreach (var a in abc) foreach (var b in abc) { if (isprime[a + a + b]) ans -= 3; } WriteLine(ans / 6); } }