Discussione:
MCD numero e virgola
(troppo vecchio per rispondere)
Norby
2010-03-26 14:37:02 UTC
Permalink
Salve, vorrei avere il massimo comun divisore di un numero eccetto se stesso.
Ossia, se scrivo questo numero 704.646.144 con la formula MCD(704.646.144)
mi esce 704.646.144, ed è giusto ma io vorrei sapere il numero più alto per
il quale è divisibile che non sia se stesso.
Es:

miafunzione(18) = 9 e non 18 :-)
====================================

Domanda 2:

Avendo una lista di numero sulla colonna A vorrei che sulla colonna B
venisse (nella stessa riga) un SI se il numero ha la virgola, altrimenti un
NO se non ha la virgola.

Per darvi un po di numeri:

352323072
234882048
140929228,8
100663734,9
64058740,36
54203549,54
41449773,18
37086639,16
30636788,87
24298142,9
22730520,77
19044490,38
17186491

Grazie!!!! :-)
Norby
max
2010-03-26 14:43:28 UTC
Permalink
Post by Norby
Salve, vorrei avere il massimo comun divisore di un numero eccetto se stesso.
Ossia, se scrivo questo numero 704.646.144 con la formula MCD(704.646.144)
mi esce 704.646.144, ed è giusto ma io vorrei sapere il numero più alto per
il quale è divisibile che non sia se stesso.
miafunzione(18) = 9 e non 18 :-)
====================================
Avendo una lista di numero sulla colonna A vorrei che sulla colonna B
venisse (nella stessa riga) un SI se il numero ha la virgola, altrimenti un
NO se non ha la virgola.
352323072
234882048
140929228,8
100663734,9
64058740,36
54203549,54
41449773,18
37086639,16
30636788,87
24298142,9
22730520,77
19044490,38
17186491
Grazie!!!! :-)
Norby
Domanda 2
in B1 e poi copi sul resto della colonna
=SE(INT(A1=A1);"NO";SI)
ciao
Max
Aleatorio
2010-03-26 15:10:46 UTC
Permalink
Post by Norby
Salve, vorrei avere il massimo comun divisore di un numero eccetto se stesso.
Ossia, se scrivo questo numero 704.646.144 con la formula MCD(704.646.144)
 mi esce 704.646.144, ed è giusto ma io vorrei sapere il numero più alto per
il quale è divisibile che non sia se stesso.
miafunzione(18) = 9 e non 18 :-)
====================================
Grazie!!!! :-)
Norby
Così può andare bene? (in A1 metti il numero di cui vuoi calcolare il
risultato):


=MAX(MCD(A1;A1/2);MCD(A1;A1/3);MCD(A1;A1/5);MCD(A1;A1/7))


Ciao
paoloard
2010-03-26 15:11:40 UTC
Permalink
Post by Norby
Salve, vorrei avere il massimo comun divisore di un numero eccetto se stesso.
Ossia, se scrivo questo numero 704.646.144 con la formula MCD(704.646.144)
mi esce 704.646.144, ed è giusto ma io vorrei sapere il numero più alto per
il quale è divisibile che non sia se stesso.
miafunzione(18) = 9 e non 18 :-)
====================================
Avendo una lista di numero sulla colonna A vorrei che sulla colonna B
venisse (nella stessa riga) un SI se il numero ha la virgola, altrimenti un
NO se non ha la virgola.
352323072
234882048
140929228,8
100663734,9
64058740,36
54203549,54
41449773,18
37086639,16
30636788,87
24298142,9
22730520,77
19044490,38
17186491
Grazie!!!! :-)
Norby
Ciao Norby, se vuoi il primo numero più alto ecc... è sufficiente che dividi
il numero per 2.
Per quanto riguarda il secondo quesito prendo prestito la formula di max
(ciao) che però per funzionare abbisogna di alcune modifiche:
=SE(INT(A1)=A1;"NO";"SI")
--
Fai sapere se e come hai risolto grazie.
ciao paoloard
http://riolab.org
paoloard
2010-03-26 20:39:35 UTC
Permalink
"paoloard" <***@alice.it> ha scritto nel messaggio news:hoiiri$iff$***@news.eternal-september.org...
cut
Post by paoloard
Ciao Norby, se vuoi il primo numero più alto ecc... è sufficiente che
dividi il numero per 2.
scusa, questo non va, ovviamente non vale per i numeri dispari, Cancella!
--
ciao paoloard
http://riolab.org
plinius
2010-03-26 16:24:19 UTC
Permalink
Post by Norby
Salve, vorrei avere il massimo comun divisore di un numero eccetto se stesso.
Ossia, se scrivo questo numero 704.646.144 con la formula MCD(704.646.144)
mi esce 704.646.144, ed è giusto ma io vorrei sapere il numero più alto per
il quale è divisibile che non sia se stesso.
miafunzione(18) = 9 e non 18 :-)
====================================
Avendo una lista di numero sulla colonna A vorrei che sulla colonna B
venisse (nella stessa riga) un SI se il numero ha la virgola, altrimenti un
NO se non ha la virgola.
352323072
234882048
140929228,8
100663734,9
64058740,36
54203549,54
41449773,18
37086639,16
30636788,87
24298142,9
22730520,77
19044490,38
17186491
Grazie!!!! :-)
Norby
Se può esserti utile, questa UDF fa la scomposizione in fattori primi di un
numero.
In un modulo standard:
*********************************************
Option Explicit
Dim i As Long, es As Integer, Scomp As String

Public Function scomponi(N As Long)
Scomp = "" ' azzera la stringa del risultato
i = 2
CercaEsp N ' testa la divisibilità per 2
If es > 0 Then registra 'in caso positivo lo scrive in "Scomp"
i = 3
Do While i ^ 2 <= N ' testa la divisibilità per tutti i dispari da 3
in poi
CercaEsp N ' finché il numero testato resta inferiore alla
RADQ del quoziente residuo
If es > 0 Then registra
i = i + 2
Loop
If N > 1 Then Scomp = Scomp & " x " & N
Scomp = Mid$(Scomp, 4) ' elimina il " x " iniziale
scomponi = Scomp 'scrive "scomp" nella casella di testo
End Function
Private Sub CercaEsp(N As Long)
es = 0
Do While N Mod i = 0
es = es + 1
N = N / i ' riduce il limite massimo al quoziente
Loop
End Sub
Private Sub registra()
Scomp = Scomp & " x " & i
If es > 1 Then Scomp = Scomp & "^" & es
End Sub
*********************************************
Se in A1 tu evessi il numero 125784
scrivi in B1:
=scomponi(A1)
ed ottieni come risposta: 2^3 x 3^2 x 1747

Ciao,
E.
plinius
2010-03-27 14:42:09 UTC
Permalink
Post by plinius
Se può esserti utile, questa UDF fa la scomposizione in fattori primi di
un numero.
*********************************************
............
............
............
............
Post by plinius
*********************************************
Se in A1 tu evessi il numero 125784
=scomponi(A1)
ed ottieni come risposta: 2^3 x 3^2 x 1747
Ciao,
E.
Ho tagliato qualcosa... meglio così:
*********************
Public Function Scomponi(N As Long) As String
Dim i As Long, es As Long, neg As Boolean
neg = (N < 0)
N = Abs(N)
i = 2
Do While i <= Sqr(N)
es = 0
Do While N Mod i = 0
es = es + 1
N = N / i
Loop
If es > 0 Then
Scomponi = Scomponi & " * " & i
If es > 1 Then Scomponi = Scomponi & "^" & es
End If
i = i + 2 + (i = 2)
Loop
If N > 1 Then Scomponi = Scomponi & " * " & N
Scomponi = Mid$(Scomponi, 4)
If neg Then Scomponi = "- " & Scomponi
If Len(Scomponi) = 0 Then Scomponi = N
End Function
**********************
I numeri con decimali sono arrotondati all'intero
E' utilizzabile anche con numeri negativi.
Per 0 restituisce 0
Per 1 restituisce 1

=Scomponi(826650825) --> 3 * 5^2 * 7^2 * 11^3 * 13^2

Ciao,
E.

r
2010-03-26 17:23:29 UTC
Permalink
Post by Norby
Salve, vorrei avere il massimo comun divisore di un numero eccetto se stesso.
Ossia, se scrivo questo numero 704.646.144 con la formula MCD(704.646.144)
 mi esce 704.646.144, ed è giusto ma io vorrei sapere il numero più alto per
il quale è divisibile che non sia se stesso.
miafunzione(18) = 9 e non 18 :-)
====================================
Avendo una lista di numero sulla colonna A vorrei che sulla colonna B
venisse (nella stessa riga) un SI se il numero ha la virgola, altrimenti un
NO se non ha la virgola.
352323072
234882048
140929228,8
100663734,9
64058740,36
54203549,54
41449773,18
37086639,16
30636788,87
24298142,9
22730520,77
19044490,38
17186491
Grazie!!!! :-)
Norby
Public Function MDC_modificato(ByVal n As Long)
Dim d As Long
Dim Stp As Long, Radice As Long
MDC_modificato = 1

Radice = Sqr(n)
d = 1
Stp = n Mod 2 + 1
Do Until d > Radice
d = d + Stp
If n Mod d = 0 Then
MDC_modificato = n / d
Exit Function
End If
Loop

End Function

restituisce 1 nel caso passi un numero primo
saluti
r
Loading...