Exemplo n.º 1
0
	template<typename T> const std::vector<std::pair<T, unsigned int> > PrimeFactors(const T& value)
	{
		Primes<T> primes;
		std::vector<std::pair<T, T> > result;
		T remainder = value;
		while (remainder > 1) {
			primes.Next();
			unsigned int count = 0;
			while (remainder % primes.Current() == 0) {
				remainder /= primes.Current();
				count++;
			}
			if (count > 0) {
				result.push_back(std::make_pair(primes.Current(), count));
			}
		}
		return result;
	}