vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest niedziela, 15 czerwca 2025 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Program w VBA liczby zaprzyjaźnione


otwartyotwarty rozpoczął: turlaj postów: 3



napisał: turlaj
postów: 3


umieszczony:
28 maja 2010
15:53

  
Dzięki za program:)
napisał: Harry
postów: 42


umieszczony:
27 maja 2010
09:45

edytowany:
27 maja 2010
09:47

  
no można np tak to zrobić:

Sub LiczbyZaprzyjaznione()
'Liczby zaprzyjaźnione to para liczb naturalnych takich,
'że suma dzielników każdej z tych liczb równa się drugiej
'(nie licząc dzielników przez samą siebie).
Dim i As Long
For i = 1 To 63020
SD1 = SumaDzielnikow(i)
SD2 = SumaDzielnikow(SD1)
    If SD2 = i Then
        Debug.Print SD2 & "-" & SD1
    End If
Next i
End Sub

Sub LiczbyZaprzyjaznioneTIQ()
'Wzór generujący niektóre liczby zaprzyjaźnione wynaleziony
'przez arabskiego matematyka Tabita Ibn Qurra'ę ok. roku 850.
'WIKIPEDIA
Dim i As Integer, p As Long, q As Long, r As Long
For i = 1 To 14
    p = 3 * 2 ^ (i - 1) - 1
    q = 3 * 2 ^ i - 1
    r = 9 * 2 ^ (2 * i - 1) - 1
    If LiczbaPierwsza(p) And LiczbaPierwsza(q) And LiczbaPierwsza(r) Then
        Debug.Print p * q * 2 ^ i & "-" & r * 2 ^ i
    End If
Next i
End Sub

Sub LiczbyDoskonale()
'Liczba doskonała- liczba naturalna, która jest sumą wszystkich
'swych dzielników właściwych (to znaczy od niej mniejszych).
Dim i As Long
For i = 2 To 63020
SD1 = SumaDzielnikow(i)
SD2 = SumaDzielnikow(SD1)
    If SD1 = SD2 Then
        Debug.Print SD1 & "-" & SD2
    End If
Next i
End Sub

Function LiczbaPierwsza(ByVal liczba As Long) As Boolean
Dim p As Long
For p = 2 To liczba - 1
    If liczba / p - Int(liczba / p) = 0 Then
        LiczbaPierwsza = False
        Exit Function
    End If
Next p
LiczbaPierwsza = True
End Function

Function SumaDzielnikow(ByVal liczba As Long) As Long
'jeżeli liczba naturalna m dzieli liczbę naturalną n bez reszty,
'to liczba m nazywa się dzielnikiem liczby n

Dim p As Long
For p = 1 To liczba - 1
    If liczba / p - Int(liczba / p) = 0 Then
        SumaDzielnikow = SumaDzielnikow + p
    End If
Next p
End Function

napisał: turlaj
postów: 3


umieszczony:
26 maja 2010
18:40

  
witam muszę stworzyć program w Visual Basicu w Excelu które będzie odnajdywał pary liczb zaprzyjaźnionych. Udało mi się znaleźć tylko tyle stworzyć ale to niestety nie działa

Function przyjazna(ByVal n As Integer) As Integer
Dim suma As Integer
Dim p As Integer
suma = 0
For p = 1 To n \ 2
If n Mod p = 0 Then
suma = suma + p
End If
Next p
End Function
Sub glowny()
Dim a As Integer
Dim b As Integer
Dim m As Integer
Dim n As String
a = InputBox("Podaj 1 liczbę")
b = InputBox("Podaj 2 liczbę")
For m = a To b - 1
n = przyjazna(m)
If n > m And n <= b And m = przyjazna(n) Then
End If
Next m
MsgBox " liczby bliźniacze to" & vbCrLf & m & " " & n
End Sub


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z