Skip to content

Instantly share code, notes, and snippets.

@volkovasystems
Last active November 28, 2019 20:29
Show Gist options
  • Save volkovasystems/6bd4e272ecf6c8a70cadb46d94a4c42e to your computer and use it in GitHub Desktop.
Save volkovasystems/6bd4e272ecf6c8a70cadb46d94a4c42e to your computer and use it in GitHub Desktop.
Big Factorial Code
function bigFactorial( bigNumber ){
return (
eval(
Object
.keys(
Array(
Math.floor( Math.sqrt( bigNumber ) )
)
.join( )
.split( "," )
)
.map(
( value ) => (
BigInt( value ) + 1n
)
)
.map(
( pageIndexValue ) => (
Object
.keys(
Array(
Math.floor( bigNumber / Math.floor( Math.sqrt( bigNumber ) ) )
)
.join( )
.split( "," )
)
.map(
( value ) => (
( BigInt( value ) + 1n )
+ (
BigInt( Math.floor( bigNumber / Math.floor( Math.sqrt( bigNumber ) ) ) )
* ( pageIndexValue - 1n )
)
)
)
)
)
.concat(
[
Object
.keys(
Array(
bigNumber
- (
Math.floor( Math.sqrt( bigNumber ) )
* Math.floor( bigNumber / Math.floor( Math.sqrt( bigNumber ) ) )
)
)
.join( )
.split( "," )
)
.slice(
Number(
(
bigNumber
- (
Math.floor( Math.sqrt( bigNumber ) )
* Math.floor( bigNumber / Math.floor( Math.sqrt( bigNumber ) ) )
)
)
=== 0
)
)
.map(
( value ) => (
( BigInt( value ) + 1n )
+ (
BigInt( Math.floor( Math.sqrt( bigNumber ) ) )
* BigInt( Math.floor( bigNumber / Math.floor( Math.sqrt( bigNumber ) ) ) )
)
)
)
]
)
.filter(
( list ) => (
list.length > 0
)
)
.map(
( list ) => (
eval(
list
.join( "*" )
.replace( /(\d+)/g, "$1n" )
)
)
)
.join("*")
.replace( /(\d+)/g, "$1n" )
)
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment