#include <iostream>
#include <vector>
#include <set>
#include <algorithm>

using namespace std;
typedef pair<int, int> P;
bool IsPrime[30100];
vector<int> Prime;

void PrimeCalc()
{
	fill(IsPrime, IsPrime + 30100, true);
	IsPrime[0] = IsPrime[1] = false;
	for(int i = 2; i < 30100; ++i)
	{
		if(IsPrime[i])
		{
			Prime.push_back(i);
			for(int j = 2 * i; j < 30100; j += i)
			{
				IsPrime[j] = false;
			}
		}
	}
}

void solve()
{
	PrimeCalc();
	int n;
	while(cin >> n, n)
	{
		int size = Prime.size();
		set<long long int> Set;
		for(int i = 0; Prime[i] <= n; ++i)
		{
			for(int j = i; Prime[j] <= n; ++j)
			{
				if(n - Prime[i] - Prime[j] <= 0)
				{
					break;
				}
				if(n - Prime[i] - Prime[j] > 0 && IsPrime[n - Prime[i] - Prime[j]])
				{
					if(Prime[i] + Prime[j] > n - Prime[i] - Prime[j] &&
					   n - Prime[i] > Prime[i] &&
					   n - Prime[j] > Prime[j])
					{
						long long int a = Prime[i];
						a *= Prime[j];
						a *= n - Prime[i] - Prime[j];
						Set.insert(a);
					}
				}
			}
		}
		cout << Set.size() << endl;
	}
}

int main()
{
	solve();
	return(0);
}