Note: The other languages of the website are Google-translated. Back to English

Jak wygenerować wszystkie liczby pierwsze między dwiema podanymi liczbami w programie Excel?

Czy w programie Excel próbowałeś kiedyś wymienić wszystkie liczby pierwsze między dwiema podanymi liczbami? W tym artykule omówię kilka interesujących metod radzenia sobie z tym zadaniem.

Wygeneruj wszystkie liczby pierwsze między dwiema podanymi liczbami za pomocą formuł

Wygeneruj wszystkie liczby pierwsze między dwiema podanymi liczbami za pomocą funkcji zdefiniowanej przez użytkownika


strzałka niebieski prawy bąbelek Wygeneruj wszystkie liczby pierwsze między dwiema podanymi liczbami za pomocą formuł

Łączenie Zdefiniuj nazwę funkcji i formuł można wyświetlić lub wygenerować wszystkie liczby pierwsze między dwiema określonymi liczbami. Wykonaj następujące czynności:

1. Utwórz nazwę pierwszego zakresu, klikając Wzory > Menedżer nazw, oraz w Menedżer nazw okno dialogowe, kliknij Nowy przycisk, zobacz zrzut ekranu:

lista dokumentów liczby pierwsze 1

2, w Nowe imie okno dialogowe w Imię lub Nazwa Firmy pole tekstowe, wprowadź RNG jako nazwę zakresu, a następnie wprowadź następującą formułę: = WIERSZ (POŚREDNI (Arkusz1! $ B $ 1 & ":" & Arkusz1! $ B $ 2)) (Sheet1 czy Twój obecny arkusz roboczy, którego używasz, B1 i B2 to określone numery początkowe i końcowe) do pliku Odnosi się do pole tekstowe, a następnie kliknij OK przycisk, aby powrócić do poprzedniego okna dialogowego. Zobacz zrzut ekranu:

lista dokumentów liczby pierwsze 2

3. Kliknij dalej Nowy przycisk, aby utworzyć inną nazwę zakresu w Nowe imie w oknie dialogowym wprowadź nazwę główny do Imię lub Nazwa Firmy pole tekstowe, a następnie wprowadź następującą formułę: =SMALL(IF(MMULT(--(IF(rng>TRANSPOSE(rng-Sheet1!$B$1+2),MOD(rng,(rng>TRANSPOSE(rng-Sheet1!$B$1+2))*TRANSPOSE(rng-Sheet1!$B$1+2)))=0),rng-Sheet1!$B$1+2)=0,rng),ROW(INDIRECT("1:"&Sheet1!$B$2))) (RNG to pierwsza nazwa zakresu utworzona w kroku 2) do pliku Odnosi się do pole tekstowe, patrz zrzut ekranu:

lista dokumentów liczby pierwsze 3

4. Następnie kliknij OK i zamknij okna dialogowe i wybierz jedną kolumnę, w której chcesz wyświetlić wszystkie liczby pierwsze, i wprowadź następującą formułę: = IFERROR (liczba pierwsza; „”)(główny to nazwa zakresu utworzona w kroku 3) na pasku formuły, a następnie naciśnij CTRL+SHIFT+ENTER klucze razem, wszystkie liczby pierwsze między podanymi dwiema liczbami są wymienione w poniższym zrzucie ekranu:

lista dokumentów liczby pierwsze 4


strzałka niebieski prawy bąbelek Wygeneruj wszystkie liczby pierwsze między dwiema podanymi liczbami za pomocą funkcji zdefiniowanej przez użytkownika

Jeśli pierwsza metoda jest nieco trudna, tutaj możesz zastosować Funkcja zdefiniowana przez użytkownika aby go rozwiązać.

1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno.

2, Kliknij wstawka > Modułi wklej następujący kod w Moduł Okno.

Kod VBA: generuje wszystkie liczby pierwsze między dwiema określonymi liczbami:

Function PRIME(St, En As Long)
'Updateby Extendoffice 20160613
Dim num As String
For n = St To En
    For m = 2 To n - 1
        If n Mod m = 0 Then GoTo 20:
    Next m
    num = num & n & ","
20:
Next n
PRIME = num
End Function

3. Następnie zapisz i zamknij ten kod, wróć do arkusza roboczego, wprowadź tę formułę: = liczba pierwsza (10,100) (10 to numer początkowy, a 100 jest liczbą końcową, między którą chcesz uzyskać liczby pierwsze, możesz je zmienić według potrzeb), a następnie naciśnij Wchodzę klucz, a wszystkie liczby pierwsze są wyświetlane w jednej komórce, patrz zrzut ekranu:

lista dokumentów liczby pierwsze 5


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (3)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Sub generateprimenumbersbetween() Initial_number = 1 'wartość wejściowa tutaj last_number = 2000 'wartość wejściowa tutaj liczby pierwsze = "" Dla a = numer_początkowy Do ostatniego_numeru Dla b = 2 Do a Jeśli a - b * Int(a / b) = 0 I ab Wtedy Exit For Else If a = b Then liczby pierwsze = liczby pierwsze & " " & a End If End If Next b Next a MsgBox liczby pierwsze End Podfunkcja liczby pierwsze między(numer_początkowy, numer_ostatni) liczby pierwsze = "" For a = numer_początkowy To ostatni_numer For b = 2 To a If a - b * Int(a / b) = 0 And ab Then Exte For Else If a = b Then liczby pierwsze = liczby pierwsze & " " & a End If End If Next b Next a liczby pierwsze między = liczby pierwsze End Funkcja 'sprawdzenia, czy a liczba jest pierwsza Sub ISPRIME() number_to_be_checked = 102 'wartość wejściowa tutaj For b = 2 To number_to_be_checked If number_to_be_checked - b * Int(number_to_be_checked / b) = 0 And _ number_to_be_checked b Then MsgBox "Not Prime. Podzielone przez " & b Sub Else If number_to_be_checked = b Then MsgBox "Prime" End If End If Next b End Sub ', aby sprawdzić, czy liczba jest liczbą pierwszą. Funkcja ISPRIME2(liczba_do_sprawdzenia) For b = 2 Do liczby_do_sprawdzenia Jeśli liczba_do_sprawdzenia - b * Int(liczba_do_sprawdzenia / b) = 0 And _liczba_do_sprawdzenia b Następnie ISPRIME2 = „Nie pierwsza. Podzielna przez " & b Zakończ funkcję Else If number_to_be_checked = b Then ISPRIME2 = "Prime" End If End If Next b Zakończ funkcję
Ten komentarz został zminimalizowany przez moderatora na stronie




End Sub

Ten komentarz został zminimalizowany przez moderatora na stronie
Sub generateprimenumbersbetween3() Initial_number = 1 'wartość wejściowa tutaj last_number = 10000 'wartość wejściowa tutaj liczby pierwsze = "" Dla a = numer_początkowy To last_number c = a For b = 2 To c Jeśli a Mod b = 0 I cb Następnie zakończ, jeśli b = c Wtedy liczby pierwsze = liczby pierwsze & " " & a Wyjście z innego powodu, jeśli runda(a / (b + 1)) + 1 > b następnie c = runda(a / (b + 1)) + 1 koniec, jeśli koniec, jeśli koniec If Next b Next a MsgBox primenumbers End Subfunkcja PRIMENUMBERSBETWEEN3(starting_number, last_number) primenumbers = "" For a = start_number To last_number c = a For b = 2 To c Jeśli a Mod b = 0 I cb Następnie zakończ For Else Jeśli b = c Wtedy liczby pierwsze = liczby pierwsze & " " & a Wyjście inaczej, jeśli runda(a / (b + 1)) + 1 > b następnie c = runda(a / (b + 1)) + 1 Koniec, jeśli koniec, jeśli koniec, jeśli dalej b Next a PRIMENUMBERSBETWEEN3 = liczby pierwsze End Function Sub ISPRIME3() number_to_be_checked = 15485863 'tutaj wartość wejściowa c = number_to_be_checked For b = 2 To c If number_to_be_checked Mod b = 0 And cb Then MsgBox "Nie Prime. Podzielna przez " & bExit Sub Else If b = c Then MsgBox "Prime" Exit Sub Else If Round(liczba_do_sprawdzenia / (b + 1)) + 1 > b Then c = Round(liczba_do_sprawdzenia / (b + 1)) + 1 End If End If End Jeśli Dalej b Zakończ Sub
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL