 mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Miscellaneous Math (https://www.mersenneforum.org/forumdisplay.php?f=56)

 a1call 2017-02-22 23:24

Fulsorials

Hi all,
There are Factorials, primorials, multfactorials.
But as far as I know the following is not coined.
I would like to introduce [B]Fulsorials[/B] to you.:smile:
You can calculate [B]Fulsorials[/B] by:
Multiplying 2 consecutive integers,
Then multiplying the-product by that-product(+-) 1
And continue indefinitely.
Every new multiplication will be by a new coprime and No primality test is required.
It could be used for finding random large factors to prime candidates without having to prove those factors primes.
As an example of [B]Fulsorials[/B]:
[B]6\$=2*3*7*43*1807*3263443[/B]
It can also be useful for finding large PRPs.:smile:

 Batalov 2017-02-22 23:55

Lovely title!

 a1call 2017-02-22 23:57

Somehow I knew you'd like it. I gave the title more thought than the subject.:smile:

 science_man_88 2017-02-23 00:00

[QUOTE=a1call;453496]Somehow I knew you'd like it. I gave the title more thought than the subject.:smile:[/QUOTE]

not really because there are alternatives [url]https://en.wikipedia.org/wiki/Falling_and_rising_factorials[/url] allows two types of factorials for example. edit: and there's [url]https://en.wikipedia.org/wiki/Gamma_function[/url] as an extension.

etc.

 a1call 2017-02-23 03:54

Here is a hopefully useful code for finding random factors (have not tested it myself yet, but expect a decent performance). Tweak the for and while loop parameters to suit your needs.
Also would appreciate large integers posted here for trial runs.

[CODE]print("\nBMT-100-A-Alternative-Factorials=Falsorials-Random-Factors.gp\n")

allocatemem()
allocatemem()
allocatemem()
allocatemem()
allocatemem()
allocatemem()

n=12345679001
isprime(n)
for (i=3,19,{
falsorial=i;
while(falsorial<10^10,
falsorial=falsorial*(falsorial-1);
theGcd=gcd(falsorial,n);
if(theGcd!=1,print("*** Found a factor: ",theGcd);next(19););
);
})
print("**** End of Run ****")[/CODE]

 carpetpool 2017-02-23 04:23

[QUOTE=a1call;453494]Hi all,
There are Factorials, primorials, multfactorials.
But as far as I know the following is not coined.
I would like to introduce [B]Fulsorials[/B] to you.:smile:
You can calculate [B]Fulsorials[/B] by:
Multiplying 2 consecutive integers,
Then multiplying the-product by that-product(+-) 1
And continue indefinitely.
Every new multiplication will be by a new coprime and No primality test is required.
It could be used for finding random large factors to prime candidates without having to prove those factors primes.
As an example of [B]Fulsorials[/B]:
[B]6\$=2*3*7*43*1807*3263443[/B]
It can also be useful for finding large PRPs.:smile:[/QUOTE]

A specific type of "Fulsorials" are [URL="https://en.wikipedia.org/wiki/Sylvester%27s_sequence"]Sylvester's Sequence[/URL]. You have a much more general idea of this.

 a1call 2017-02-23 04:28

[QUOTE=carpetpool;453511]A specific type of "Fulsorials" are [URL="https://en.wikipedia.org/wiki/Sylvester%27s_sequence"]Sylvester's Sequence[/URL]. You have a much more general idea of this.[/QUOTE]
Thank you for that carpetpool. I am only 137 years too late.:picard:

 a1call 2017-02-23 05:01

[URL]https://factordb.com/index.php?id=1100000000905790309[/URL]

[CODE]print("\nBMT-100-C-Alternative-Factorials=Falsorials-Random-Factors.gp\n")

allocatemem()
allocatemem()
allocatemem()
allocatemem()
allocatemem()
allocatemem()

n= 4883945163367692991
isprime(n)
for (i=3,19^4,{
falsorial=i;
while(falsorial<10^100000,
falsorial=falsorial*(falsorial-1);\\print(falsorial);
theGcd=gcd(falsorial,n);
if(theGcd!=1,print("*** Found a factor: ",theGcd);next(19););
theGcd=gcd(falsorial+1,n);
if(theGcd!=1,print("*** Found a factor: ",theGcd);next(19););
);
})
print("**** End of Run ****")

[/CODE]

ETA:
[url]https://factordb.com/index.php?id=1100000000905788578[/url]

[CODE] n= 254035168468567119979994968319537
%2 = 254035168468567119979994968319537
(00:10) gp > isprime(n)
%3 = 0
(00:10) gp > for (i=3,19^4,{
falsorial=i;
while(falsorial<10^100000,
falsorial=falsorial*(falsorial-1);\\print(falsorial);
theGcd=gcd(falsorial,n);
if(theGcd!=1,print("*** Found a factor: ",theGcd);next(19););
theGcd=gcd(falsorial+1,n);
if(theGcd!=1,print("*** Found a factor: ",theGcd);next(19););
);
})
*** Found a factor: 41
(00:10) gp > print("**** End of Run ****")
**** End of Run ****[/CODE]

 science_man_88 2017-02-23 14:25

for others that may be interested you have a lot of alternatives:

[url]https://en.wikipedia.org/wiki/Factorial[/url]

talks of hyperfactorials and superfactorials

[url]https://en.wikipedia.org/wiki/Alternating_factorial[/url] is another one

and the bottom links on some of these include:

[url]https://en.wikipedia.org/wiki/Bhargava_factorial[/url] and
[url]https://en.wikipedia.org/wiki/Exponential_factorial[/url]

 rogue 2017-02-23 17:17

Sounds like someone needs to do some prime hunting (and not me this time).

 a1call 2017-02-23 18:31

I am not sure who you are referring to and I can't speak for Mr Sylvester. But I wouldn't have a clue how to fully factor any of the larger terms. So if anyone feels any off this is of any use you have my blessings to use them.