📄 hugeintx.h
字号:
operator CONST LPCTSTR( VOID ) CONST;
const CHugeIntX operator -( VOID ) CONST;
CHugeIntX& Abs( VOID );
CHugeIntX& Negate( VOID );
CHugeIntX& Swap( CHugeIntX& right );
CHugeIntX& Ceil( CONST UINT32 u32Bits );
CHugeIntX& Truncate( CONST UINT32 u32Bits );
CHugeIntX& Floor( CONST UINT32 u32Bits );
CHugeIntX& Random( CONST UINT32 u32Bits );
CHugeIntX& GeneratePrime( CONST UINT32 u32Bits );
// Returns the largest prime number less than the argument.
CHugeIntX& PreviousPrime( CONST CHugeIntX& hBenchmark );
// Returns the smallest prime number greater than the argument.
CHugeIntX& NextPrime( CONST CHugeIntX& hBenchmark );
// reload operators
CHugeIntX& operator =( CONST SINT32& s32Num );
CHugeIntX& operator =( CONST SINT64& s64Num );
CHugeIntX& operator =( CONST UINT32& u32Num );
CHugeIntX& operator =( CONST UINT64& u64Num );
CHugeIntX& operator =( CONST LPCTSTR lpszNum );
CHugeIntX& operator =( CONST CRadixConverter& RadixConverter );
CHugeIntX& operator =( CONST CHugeIntX& right );
CHugeIntX& operator =( CONST CHugeInt& right );
CHugeIntX& SetHexStr( CONST LPCTSTR lpszHexNum );
CHugeIntX& SetText( CONST LPCTSTR lpszText );
CHugeIntX& operator +=( CONST UINT32 u32Num );
CHugeIntX& operator +=( CONST SINT32 s32Num );
CHugeIntX& operator +=( CONST CHugeIntX& right );
CHugeIntX& operator ++( VOID );
CONST CHugeIntX operator ++( CONST INT );
CHugeIntX& operator -=( CONST UINT32 u32Num );
CHugeIntX& operator -=( CONST SINT32 s32Num );
CHugeIntX& operator -=( CONST CHugeIntX& right );
CHugeIntX& operator --( VOID );
CONST CHugeIntX operator --( CONST INT );
CHugeIntX& operator *=( CONST UINT32 u32Num );
CHugeIntX& operator *=( CONST SINT32 s32Num );
CHugeIntX& operator *=( CONST CHugeIntX& right );
CHugeIntX& operator /=( CONST UINT32 u32Num );
CHugeIntX& operator /=( CONST SINT32 s32Num );
CHugeIntX& operator /=( CONST CHugeIntX& right );
CHugeIntX& operator %=( CONST UINT32 u32Num );
CHugeIntX& operator %=( CONST SINT32 s32Num );
CHugeIntX& operator %=( CONST CHugeIntX& right );
CHugeIntX& operator <<=( CONST UINT32 u32BitLShift );
CHugeIntX& operator >>=( CONST UINT32 u32BitRShift );
CONST CHugeIntX operator <<( CONST UINT32 u32BitLShift ) CONST;
CONST CHugeIntX operator >>( CONST UINT32 u32BitRShift ) CONST;
CHugeIntX& operator &=( CONST CHugeIntX& right );
CHugeIntX& operator ^=( CONST CHugeIntX& right );
CHugeIntX& operator |=( CONST CHugeIntX& right );
CONST CHugeIntX operator &( CONST CHugeIntX& right ) CONST;
CONST CHugeIntX operator ^( CONST CHugeIntX& right ) CONST;
CONST CHugeIntX operator |( CONST CHugeIntX& right ) CONST;
// Multiplication, return product
CHugeIntX& Mul( CONST UINT32 u32Multiplicand, CONST CHugeIntX& hugeMultiplier );
CHugeIntX& Mul( CONST SINT32 s32Multiplicand, CONST CHugeIntX& hugeMultiplier );
CHugeIntX& Mul( CONST CHugeIntX& hugeMultiplicand, CONST UINT32 u32Multiplier );
CHugeIntX& Mul( CONST CHugeIntX& hugeMultiplicand, CONST SINT32 s32Multiplier );
CHugeIntX& Mul( CONST CHugeIntX& hugeMultiplicand, CONST CHugeIntX& hugeMultiplier );
// Division, return quotient
CHugeIntX& Div( CONST CHugeIntX& hugeDividend, CONST UINT32 u32Divisor, SINT64 * CONST pRemainder = NULL );
CHugeIntX& Div( CONST CHugeIntX& hugeDividend, CONST SINT32 s32Divisor, SINT32 * CONST pRemainder = NULL );
CHugeIntX& Div( CONST CHugeIntX& hugeDividend, CONST CHugeIntX& hugeDivisor, CHugeIntX * CONST pRemainder = NULL );
CHugeIntX& Pow( CONST UINT32 u32Exp );
CHugeIntX& Pow( CONST CHugeIntX& hugeBase, CONST UINT32 u32Exp );
// Extraction
CHugeIntX& Root( CONST CHugeIntX& hugeRadicand, CONST UINT32 u32Exp, CHugeIntX * CONST pRemainder = NULL, BOOL * CONST pIsReal = NULL );
// Logarithm
CONST UINT32 Log( CONST UINT32 u32Base, BOOL * CONST pIsExact = NULL ) CONST;
CONST UINT32 Log( CONST CHugeIntX& hugeBase, BOOL * CONST pIsExact = NULL ) CONST;
// "PrimeFactorial(n) gives the product of the first n primes."
CHugeIntX& PrimeFactorial( CONST UINT32 u32Index );
// Factorial, Permutation, Combination
CHugeIntX& Factorial( CONST UINT32 n );
CHugeIntX& Factorial2( CONST UINT32 n );
CHugeIntX& Permutation( CONST UINT32 n, CONST UINT32 r );
CHugeIntX& Combination( CONST UINT32 n, CONST UINT32 r );
// Fibonacci numbers
CHugeIntX& Fibonacci( CONST SINT32 n );
// Lucas numbers
CHugeIntX& Lucas( CONST SINT32 n );
// MulMod
CHugeIntX& MulMod( CONST CHugeIntX& hugeMultiplicand, CONST CHugeIntX& hugeMultiplier, CONST CHugeIntX& hugeMod );
CHugeIntX& MulMod( CONST CHugeIntX& hugeMultiplier, CONST CHugeIntX& hugeMod );
// InvertMod: x = InvertMod( b, m ) && !(!x) <==> ( b * x ) mod m = 1
CHugeIntX& InvertMod( CONST UINT32 u32InvertBase, CONST CHugeIntX& hugeMod );
CHugeIntX& InvertMod( CONST CHugeIntX& hugeInvertBase, CONST CHugeIntX& hugeMod );
CHugeIntX& InvertMod( CONST CHugeIntX& hugeMod );
// PowMod
CHugeIntX& PowMod( CONST UINT32 u32Base, CONST UINT32 u32Exp, CONST CHugeIntX& hugeMod );
CHugeIntX& PowMod( CONST UINT32 u32Base, CONST SINT32 s32Exp, CONST CHugeIntX& hugeMod );
CHugeIntX& PowMod( CONST UINT32 u32Base, CONST CHugeIntX& hugeExp, CONST CHugeIntX& hugeMod );
CHugeIntX& PowMod( CONST CHugeIntX& hugeBase, CONST UINT32 u32Exp, CONST CHugeIntX& hugeMod );
CHugeIntX& PowMod( CONST CHugeIntX& hugeBase, CONST SINT32 s32Exp, CONST CHugeIntX& hugeMod );
CHugeIntX& PowMod( CONST CHugeIntX& hugeBase, CONST CHugeIntX& hugeExp, CONST CHugeIntX& hugeMod );
// ModPowTwo: *this %= 2^u32Exp
CHugeIntX& ModPowTwo( CONST UINT32 u32Exp );
// Greatest Common Divisor
CHugeIntX& Gcd( CONST UINT32 u32Num, CONST CHugeIntX& right );
CHugeIntX& Gcd( CONST SINT32 s32Num, CONST CHugeIntX& right );
CHugeIntX& Gcd( CONST CHugeIntX& left, CONST UINT32 u32Num );
CHugeIntX& Gcd( CONST CHugeIntX& left, CONST SINT32 s32Num );
CHugeIntX& Gcd( CONST CHugeIntX& left, CONST CHugeIntX& right );
CHugeIntX& Gcd( CONST LPCHUGEINTX_CVECTOR& vLpHugeIntX );
// GcdEx: g = GcdEx( x, y, u, v ) = u * x + v * y. g is always positive, even if one or both of u and v are negative.
CHugeIntX& GcdEx( CHugeIntX& x, CHugeIntX& y, CONST CHugeIntX& u, CONST CHugeIntX& v );
// Lowest Common Multiple
CHugeIntX& Lcm( CONST UINT32_CVECTOR& vU32Num );
CHugeIntX& Lcm( CONST UINT32 u32Num, CONST CHugeIntX& right );
CHugeIntX& Lcm( CONST SINT32 s32Num, CONST CHugeIntX& right );
CHugeIntX& Lcm( CONST CHugeIntX& left, CONST UINT32 u32Num );
CHugeIntX& Lcm( CONST CHugeIntX& left, CONST SINT32 s32Num );
CHugeIntX& Lcm( CONST CHugeIntX& left, CONST CHugeIntX& right );
CHugeIntX& Lcm( CONST LPCHUGEINTX_CVECTOR& vLpHugeIntX );
CHugeIntX& Product( CONST UINT32_CVECTOR& vU32Num );
CHugeIntX& Product( CONST LPCHUGEINTX_CVECTOR& vLpHugeIntX );
// if u32Exp==0, then call function: Product( ... );
CHugeIntX& SumsOfLikePowers( CONST UINT32_CVECTOR& vU32Num, CONST UINT32 u32Exp = 1 );
CHugeIntX& SumsOfLikePowers( CONST LPCHUGEINTX_CVECTOR& vLpHugeIntX, CONST UINT32 u32Exp = 1 );
// Output
CONST LPCTSTR GetStr( CONST BYTE byFormat = FS_DEFAULT, UINT32 * CONST pStrLen = NULL ) CONST;
// no "0x"
CONST LPCTSTR GetHexStr( CONST BYTE byFormat = FS_DEFAULT, UINT32 * CONST pStrLen = NULL ) CONST;
// This function can convert the huge integer to a string of digits in another Radix system.
CONST LPCTSTR GetStrRadix( CONST UINT32 u32Radix = 10, UINT32 * CONST pDigits = NULL, CONST BYTE byFormat = FS_DEFAULT, CONST UINT32 u32BandLength = 3, UINT32 * CONST pStrLen = NULL ) CONST;
CONST LPCTSTR GetText( VOID ) CONST;
VOID FreeStrBuffer( VOID ) CONST;
protected:
private:
explicit CHugeIntX( CONST CHugeSIntX& right );
CHugeIntX& operator =( CONST CHugeSIntX& right );
CHugeSIntX * CONST m_pHugeSIntX;
};
#endif // !defined(AFX_HUGEINTX_H__5B7DCBAC_6D89_4C55_B51F_D96B5E741B51__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -