Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fattoriale

12 views
Skip to first unread message

Max Ferrari

unread,
Jan 23, 2022, 5:07:44 AM1/23/22
to
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 6227020800
14! = 87178291200
15! = 1307674368000
16! = 20922789888000
17! = 355687428096000
18! = 6402373705728000
19! = 121645100408832000
20! = 2432902008176640000
21! = 51090942171709440000
22! = 1124000727777607680000
23! = 25852016738884976640000
24! = 620448401733239439360000
25! = 15511210043330985984000000
26! = 403291461126605635584000000
27! = 10888869450418352160768000000
28! = 304888344611713860501504000000
29! = 8841761993739701954543616000000
30! = 265252859812191058636308480000000

--
Brugola

--
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus

verde

unread,
Jan 23, 2022, 5:17:16 AM1/23/22
to
???

Fattoria le?
Laitte Edition?

--

Max Ferrari

unread,
Jan 23, 2022, 8:25:49 AM1/23/22
to
Il 23/01/2022 11:03, Max Ferrari ha scritto:

> 18! = 6402373705728000

trecentocinquantacinque bilioni e seicentottantasette miliardi e
quattrocentoventotto milioni e novantaseimila

Max Ferrari

unread,
Jan 23, 2022, 8:26:22 AM1/23/22
to
Il 23/01/2022 11:03, Max Ferrari ha scritto:

> 17! = 355687428096000

trecentocinquantacinque bilioni e seicentottantasette miliardi e
quattrocentoventotto milioni e novantaseimila

Ammammata

unread,
Jan 24, 2022, 3:00:20 AM1/24/22
to
Il giorno Sun 23 Jan 2022 11:03:31a, *Max Ferrari* ha inviato su it.test il
messaggio news:ssj9de$uvl$1...@dont-email.me. Vediamo cosa ha scritto:

> 30! = 265252859812191058636308480000000
>

69! è il massimo che ci sta in una calcolatrice con esponente a due cifre
programmi tipo mathematica vanno ben oltre
uno dei primi programmi che scrissi sulla casio fx-602p era per calcolare
tutte le cifre di un fattoriale, memorizzandole a sei a sei nelle 100
memorie disponibili (indicizzate)
chissà se ho ancora in giro il listato... son passati quasi 40 anni :(

--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........

Max Ferrari

unread,
Jan 24, 2022, 9:01:47 AM1/24/22
to
Il 24/01/2022 09:00, Ammammata ha scritto:
> Il giorno Sun 23 Jan 2022 11:03:31a, *Max Ferrari* ha inviato su it.test il
> messaggio news:ssj9de$uvl$1...@dont-email.me. Vediamo cosa ha scritto:
>
>> 30! = 265252859812191058636308480000000
>>
>
> 69! è il massimo che ci sta in una calcolatrice con esponente a due cifre
> programmi tipo mathematica vanno ben oltre
> uno dei primi programmi che scrissi sulla casio fx-602p era per calcolare
> tutte le cifre di un fattoriale, memorizzandole a sei a sei nelle 100
> memorie disponibili (indicizzate)
> chissà se ho ancora in giro il listato... son passati quasi 40 anni :(
>

Con gli Integer di Java non ci sono limiti, solo quelli fisici dell'hardware

100! =
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

Max Ferrari

unread,
Jan 24, 2022, 9:03:57 AM1/24/22
to
Il 24/01/2022 14:57, Max Ferrari ha scritto:
> Il 24/01/2022 09:00, Ammammata ha scritto:
>> Il giorno Sun 23 Jan 2022 11:03:31a, *Max Ferrari* ha inviato su
>> it.test il
>> messaggio news:ssj9de$uvl$1...@dont-email.me. Vediamo cosa ha scritto:
>>
>>> 30! = 265252859812191058636308480000000
>>>
>>
>> 69! è il massimo che ci sta in una calcolatrice con esponente a due cifre
>> programmi tipo mathematica vanno ben oltre
>> uno dei primi programmi che scrissi sulla casio fx-602p era per calcolare
>> tutte le cifre di un fattoriale, memorizzandole a sei a sei nelle 100
>> memorie disponibili (indicizzate)
>> chissà se ho ancora in giro il listato... son passati quasi 40 anni :(
>>
>
> Con gli Integer di Java non ci sono limiti, solo quelli fisici
> dell'hardware
>
> 100! =
> 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
>
>


500! =
1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Ammammata

unread,
Jan 24, 2022, 9:27:45 AM1/24/22
to
Il giorno Mon 24 Jan 2022 02:59:43p, *Max Ferrari* ha inviato su it.test
il messaggio news:ssmbkb$ruq$2...@dont-email.me. Vediamo cosa ha scritto:

> 500! =
> 122013682599111...0000000000000000
>

a bruciapelo:
quanti sono gli zeri finali di 500! ?
come fai a calcolarlo in pochi secondi?

Max Ferrari

unread,
Jan 24, 2022, 12:06:08 PM1/24/22
to
Il 24/01/2022 15:27, Ammammata ha scritto:
> Il giorno Mon 24 Jan 2022 02:59:43p, *Max Ferrari* ha inviato su it.test
> il messaggio news:ssmbkb$ruq$2...@dont-email.me. Vediamo cosa ha scritto:
>
>> 500! =
>> 122013682599111...0000000000000000
>>
>
> a bruciapelo:
> quanti sono gli zeri finali di 500! ?
> come fai a calcolarlo in pochi secondi?
>


Fai un cast in stringa e conti i caratteri uguali?

Max Ferrari

unread,
Jan 24, 2022, 12:57:18 PM1/24/22
to
Il 24/01/2022 15:27, Ammammata ha scritto:
> Il giorno Mon 24 Jan 2022 02:59:43p, *Max Ferrari* ha inviato su it.test
> il messaggio news:ssmbkb$ruq$2...@dont-email.me. Vediamo cosa ha scritto:
>
>> 500! =
>> 122013682599111...0000000000000000
>>
>
> a bruciapelo:
> quanti sono gli zeri finali di 500! ?
> come fai a calcolarlo in pochi secondi?
>

Non so se i conti siano corretti, ma presumo convertendo il numero in
stringa, tipo qualcosa del genere:

BigInteger 500! =
1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Stringa =
1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Lunghezza totale stringa: 1135 caratteri.

Numero di zeri contigui = 121

Max Ferrari

unread,
Jan 24, 2022, 12:59:48 PM1/24/22
to
Il 24/01/2022 15:27, Ammammata ha scritto:

> a bruciapelo:
> quanti sono gli zeri finali di 500! ?
> come fai a calcolarlo in pochi secondi?


public static void main (String[]args)
{
for (int i = 1; i <= 5; i++)
{
//factorial(i);
if (i < 10)
{
System.out.println (" " + i + "! = " + factorial (i));
}
else
{
System.out.println (i + "! = " + factorial (i));

}
}
int n = 500;
BigInteger bigFact = BigInteger.valueOf (n).multiply (factorial (n - 1));
System.out.println ("BigInteger " + n + "! = " + bigFact);

String stringValue = bigFact.toString ();
System.out.println ("Stringa = " + stringValue);

System.out.println ("Lunghezza totale stringa: " + stringValue.length
() +
" caratteri.");

int count0 = 0;
int index;
for (index = 0; index < stringValue.length () - 3; index++)
{
if (stringValue.charAt (index) == '0')
{
if ((stringValue.charAt (index + 1)) == '0'
&& (stringValue.charAt (index + 2)) == '0')
{
count0++;
}
}
}
System.out.println (stringValue.charAt (0));
System.out.println ("Numero di zeri contigui = " + count0);

Max Ferrari

unread,
Jan 24, 2022, 1:15:43 PM1/24/22
to
Il 24/01/2022 18:53, Max Ferrari ha scritto:
> Il 24/01/2022 15:27, Ammammata ha scritto:
>> Il giorno Mon 24 Jan 2022 02:59:43p, *Max Ferrari* ha inviato su it.test
>> il messaggio news:ssmbkb$ruq$2...@dont-email.me. Vediamo cosa ha scritto:
>>
>>> 500! =
>>> 122013682599111...0000000000000000
>>>
>>
>> a bruciapelo:
>> quanti sono gli zeri finali di 500! ?
>> come fai a calcolarlo in pochi secondi?
>>
>
> Non so se i conti siano corretti, ma presumo convertendo il numero in
> stringa, tipo qualcosa del genere:
>
> BigInteger 500! = 12201368259911100...0000000
>
>
> Stringa = 12201368259911100...0000000
>
>
> Lunghezza totale stringa: 1135 caratteri.
>
> Numero di zeri contigui = 121


Certo che un copia e incolla degli zeri e poi una sola funzione è molto
più veloce... ed è anche più difficile sbagliare il conto:

String zero = "0000000000000...0000000";
System.out.println("Numero di zeri contigui finali: " + zero.length());


OUTPUT:
Numero di zeri contigui finali: 124

Ammammata

unread,
Jan 25, 2022, 5:52:36 AM1/25/22
to
Il giorno Mon 24 Jan 2022 06:55:33p, *Max Ferrari* ha inviato su it.test
il messaggio news:ssmpei$5f1$2...@dont-email.me. Vediamo cosa ha scritto:

> Il 24/01/2022 15:27, Ammammata ha scritto:
>
>> a bruciapelo:
>> quanti sono gli zeri finali di 500! ?
>> come fai a calcolarlo in pochi secondi?
>
>
> public static void main (String[]args)
> {
[agatino]
> System.out.println (stringValue.charAt (0));
> System.out.println ("Numero di zeri contigui = " + count0);
> }
>
>

mah, questa te la do buona sulla fiducia

il trucco veloce č quello di contare uno zero finale per ogni numero che č
divisibile per 5, piů uno per ogni numero divisibile anche per 25, piů uno
per quelli divisibili anche per 125, per 625, per 3125, eccetera

quindi da 1 a 500 ne abbiamo 100 divisibili per 5 = 100
piů 20 divisibili anche per 25 = 20
piů 4 divisibili anche per 125 = 4

totale 124

nel tuo conto ce ne sono 124 per cui il conto qui sopra quadra :)

500! =
122013682599111006870123878542304692625357434280319284219241358838584537315
388199760549644750220328186301361647714820358416337872207817720048078520515
932928547790757193933060377296085908627042917454788242491272634430567017327
076946106280231045264421887878946575477714986349436778103764427403382736539
747138647787849543848959553753799042324106127132698432774571554630997720278
101456108118837370953101635632443298702956389662891165897476957208792692887
128178007026517450776841071962439039432253642260523494585012991857150124870
696156814162535905669342381300885624924689156412677565448188650659384795177
536089400574523894033579847636394490531306232374906644504882466507594673586
207463792518420045936969298102226397195259719094521782333175693458150855233
282076282002340262690789834245171200620771464097945611612762914595123722991
334016955236385094288559201872743379517301458635757082835578015873543276888
868012039988238470215146760544540766353598417443048012893831389688163948746
965881750450692636533817505547812864000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000

LutherBlissett

unread,
Jan 26, 2022, 2:59:31 AM1/26/22
to
On 25/01/2022 11:52, Ammammata wrote:
> Il giorno Mon 24 Jan 2022 06:55:33p, *Max Ferrari* ha inviato su it.test
> il messaggio news:ssmpei$5f1$2...@dont-email.me. Vediamo cosa ha scritto:
>
>> Il 24/01/2022 15:27, Ammammata ha scritto:
>>
>>> a bruciapelo:
>>> quanti sono gli zeri finali di 500! ?
>>> come fai a calcolarlo in pochi secondi?
>>
>>
>> public static void main (String[]args)
>> {
> [agatino]
>> System.out.println (stringValue.charAt (0));
>> System.out.println ("Numero di zeri contigui = " + count0);
>> }
>>
>>
>
> mah, questa te la do buona sulla fiducia
>
> il trucco veloce è quello di contare uno zero finale per ogni numero che è
> divisibile per 5, più uno per ogni numero divisibile anche per 25, più uno
> per quelli divisibili anche per 125, per 625, per 3125, eccetera
>
> quindi da 1 a 500 ne abbiamo 100 divisibili per 5 = 100
> più 20 divisibili anche per 25 = 20
> più 4 divisibili anche per 125 = 4
>
> totale 124
>
> nel tuo conto ce ne sono 124 per cui il conto qui sopra quadra :)
>
> 500! =
> 122013682599111006870123878542304692625357434280319284219241358838584537315
> 388199760549644750220328186301361647714820358416337872207817720048078520515
> 932928547790757193933060377296085908627042917454788242491272634430567017327
> 076946106280231045264421887878946575477714986349436778103764427403382736539
> 747138647787849543848959553753799042324106127132698432774571554630997720278
> 101456108118837370953101635632443298702956389662891165897476957208792692887
> 128178007026517450776841071962439039432253642260523494585012991857150124870
> 696156814162535905669342381300885624924689156412677565448188650659384795177
> 536089400574523894033579847636394490531306232374906644504882466507594673586
> 207463792518420045936969298102226397195259719094521782333175693458150855233
> 282076282002340262690789834245171200620771464097945611612762914595123722991
> 334016955236385094288559201872743379517301458635757082835578015873543276888
> 868012039988238470215146760544540766353598417443048012893831389688163948746
> 965881750450692636533817505547812864000000000000000000000000000000000000000
> 000000000000000000000000000000000000000000000000000000000000000000000000000
> 0000000000


Complimenti per il test.

Ammammata

unread,
Jan 26, 2022, 5:11:02 AM1/26/22
to
Il giorno Wed 26 Jan 2022 08:59:30a, *LutherBlissett* ha inviato su it.test
il messaggio news:ssqv12$7d2$2...@dont-email.me. Vediamo cosa ha scritto:

>
> Complimenti per il test.
>
>

di nulla, complimenti anche a te per il quoting alla cdc ;)
0 new messages