/usr/include/bobcat/primefactors is in libbobcat-dev 4.08.02-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87  | #ifndef INCLUDED_BOBCAT_PRIMEFACTORS_
#define INCLUDED_BOBCAT_PRIMEFACTORS_
#include <iostream>
#include <vector>
#include <fstream>
#include <memory>
#include <bobcat/bigint>
namespace FBB
{
struct PrimeFactors
{
    struct PrimePower
    {
        BigInt prime;
        size_t power;
    };
    typedef std::vector<PrimePower> Factors;
    private:
        typedef std::vector<BigInt> BigIntVector;
        typedef BigIntVector::const_iterator ConstIterator;
    
        class iterator
        {
            protected:
                enum InputMode
                {
                    PRIMES,
                    SENTINEL
                };
                int d_mode;
                BigIntVector *d_primes;
                ConstIterator d_iterator;
                BigInt d_lastPrime;
                BigIntVector d_sentinel;
                    
            public:
                virtual ~iterator();
                iterator();
                iterator(BigIntVector &primes);     // 2
                iterator &operator++();                         //    opinc.f
                void setSentinel(BigInt const &sentinel);               // .f
                BigInt const &operator*() const;                //   opstar.f
                void nextPrime();                                       // .f
                BigInt const &lastPrime() const;                        // .f
                bool atSentinel() const;                                // .f
            protected:
                void checkInitialPrimes(BigIntVector const &primes) const;
                bool isComposite(BigInt const &candidate);
    
            private:
                virtual iterator &operatorPreInc();
                virtual void next();
        };
        class iteratorStream;
        BigInt d_value;
        BigInt d_last;
        std::shared_ptr<iterator> d_iterator;
    
        Factors d_factors;
    public:
        PrimeFactors(BigIntVector &primes);
        PrimeFactors(std::string const &name = "", size_t blockSize = 1000);
        PrimeFactors(PrimeFactors const &other) = delete;
        Factors const &factorize(BigInt const &value);
    private:
        void reduce(BigInt const &prime);
        void availablePrimes();
        void addPrimes();
};
} // FBB        
#endif
 |