Stránka 1 z 1

excel - vytvoreni marka

Napsal: 18 kvě 2009 20:49
od lucinka17
ahojky, potrebovala bych pomoct s ukolem do vypocetky. mam udelat makro ktere mi vypise do sloupecku urcity pocet prvocisel. kdyby se nasel nekdo kdo by mi to udelal a treba mi i to makro popsal co se kde dje byla bych vam vdecna!!!

predem dekuju!

Lucik

Re: excel - vytvoreni marka

Napsal: 18 kvě 2009 21:51
od navstevnik
Jak zjistit, ze cislo je prvocislo napr. viz http://officir.ic.cz/chipex04/10/excel_cisla.html (na Googlu lze nalezt i dalsi algoritmy):

Kód: Vybrat vše

Option Explicit
'http://officir.ic.cz/chipex04/10/excel_cisla.html
Function PRVOCISLO(Cislo As Long) As Boolean
  Dim x As Long
  Application.Volatile
  Cislo = Abs(Cislo)
  Select Case Cislo
    Case 0, 1, 4, 6, 8
      PRVOCISLO = False
    Case 2, 3, 5, 7
      PRVOCISLO = True
    Case Is > 8
      If Cislo Mod 2 = 0 Then
        PRVOCISLO = False
        Exit Function
      Else
        For x = 3 To Sqr(Cislo) Step 2
          If Cislo Mod x = 0 Then
            PRVOCISLO = False
            Exit Function
          Else
            PRVOCISLO = True
          End If
        Next x
      End If
  End Select
End Function


Vygenerovat sadu prvocisel a zobrazit je ve sloucpi by nemel byt take problem:

Kód: Vybrat vše

Sub VlozPrvocislo()
' do sloupce A:A je vygenerovana sada prvocisel, pocet je v promenne PocetPrvCis
  Dim i As Long
  Dim TargetCll As Range, Ofs As Long, PocetPrvCis As Long
  PocetPrvCis = 200
  Set TargetCll = Worksheets("list1").Range("a1")
  Ofs = 0: i = 0
  Do
    If PRVOCISLO(i) Then
      TargetCll.Offset(Ofs, 0).Value = i
      Ofs = Ofs + 1
    End If
    i = i + 1
  Loop While Ofs < PocetPrvCis
End Sub