Hoppa till huvudinnehåll

Hur kontrollerar jag om antalet är primtal i Excel?

Som vi alla vet är ett primtal ett naturligt tal som bara innehåller två separata naturliga taldelare: en och sig själv. Om du har en lista med siffror i ett kalkylblad, hur kan du kontrollera om siffrorna är primtal?

Kontrollera om ett tal är primtal med matrisformel

Kontrollera om ett tal är primtal med användardefinierad funktion


pil blå höger bubbla Kontrollera om ett tal är primtal med matrisformel

Följande formel kan hjälpa dig att identifiera numret om det är ett primtal eller inte, gör så här:

1. Ange följande formel i en tom cell - C2 till exempel bredvid dina data:

=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime")) (A2 är cellen innehåller det nummer som du vill kontrollera) och tryck sedan på Ctrl + Skift + Enter knapparna tillsammans, så får du resultatet, om siffran är primär, kommer den att visa "Prime" i cellen, om inte, kommer "Not Prime" att visas, se skärmdump:

doc kontrollera om prim 1

2. Välj sedan cellen C2 och dra påfyllningshanteringen ner till cellerna som du vill använda denna formel, och alla siffror kommer att identifieras om det är primtal eller inte. Se skärmdump:

doc kontrollera om prim 2


pil blå höger bubbla Kontrollera om ett tal är primtal med användardefinierad funktion

Följande Användardefinierad funktion kan också hjälpa dig att kontrollera siffrorna om de är primära eller inte, gör så här:

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

VBA-kod: Kontrollera om ett tal är primt eller inte:

Function CheckPrime(Numb As Single) As Boolean
'Updateby Extendoffice
    Dim X As Long
    If Numb < 2 Or (Numb <> 2 And Numb Mod 2 = 0) _
     Or Numb <> Int(Numb) Then Exit Function
    For X = 3 To Sqr(Numb) Step 2
        If Numb Mod X = 0 Then Exit Function
    Next
    CheckPrime = True
End Function

3. Spara och stäng sedan den här koden, gå tillbaka till kalkylbladet och ange den här formeln: = checkprime (A2) in i en tom cell bredvid din nummerlista och dra sedan påfyllningshanteringen ner till cellerna som du vill innehålla denna formel. Om numret är primtal kommer det att visas SANT, om inte, det visar FALSE, se skärmdump:

doc kontrollera om prim 3

Bästa kontorsproduktivitetsverktyg

🤖 Kutools AI Aide: Revolutionera dataanalys baserat på: Intelligent utförande   |  Generera kod  |  Skapa anpassade formler  |  Analysera data och generera diagram  |  Anropa Kutools funktioner.
Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50+ Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

Beskrivning


Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
Comments (21)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
DO NOT ENTER THE FORMULAE IN THE CELL. Select the cell then paste the formulae in the formulae bar and press ctrl+shft+Enter. it should put { around the formulae} otherwise its wrong.
This comment was minimized by the moderator on the site
Craig, Thanks - that works! Sorry, I didn't read the instructions sufficiently carefully.
This comment was minimized by the moderator on the site
There is definitely a problem with this equation. I did a direct copy/paste and checked it was a faithful copy but it still has 9, 15, 21, 25, 33, 35 and 39 as primes when they obviously are not. On quick inspection it seems as if factors of 3 and 5 are giving rise to some sort of problem. It is a very complicated formula for a single cell - so much so, I can't work out what it is trying to do. I usually break such things down into multiple cells to make debugging easier (which, I believe is Excel best practice). The function seems to work, though.
This comment was minimized by the moderator on the site
There is definitely a problem with this equation. I did a direct copy/paste and checked it was a faithful copy but it still has 9, 15, 21, 25, 33, 35 and 39 as primes when they obviously are not. On quick inspection it seems as if factors of 3 and 5 are giving rise to some sort of problem. It is a very complicated formula for a single cell - so much so, I can't work out what it is trying to do. I usually break such things down into multiple cells to make debugging easier (which, I believe is Excel best practice).
This comment was minimized by the moderator on the site
Hi.

I am using an italian version of Excel, so the formula does not work and i have an error. Can you help me?

Thanks in advance
This comment was minimized by the moderator on the site
Hi, Gian,
If the formula does not work correctly for you, you can apply the second method-User Defined Function. Please try, hope it can help you!
Thank you!
This comment was minimized by the moderator on the site
Hi skyyang.
If it can be useful for others researchers, I inform you that I have found the solution to my problem here => http://www.riolab.org/index.php?option=com_content&view=article&id=172&Itemid=68

Thank you!
This comment was minimized by the moderator on the site
Yes it worked wen I did Ctrl+Shift+Enter... !! Thank you..:D and Do u mind explaining the algorithm please.
This comment was minimized by the moderator on the site
There's a reference error when you type in numbers that have more than 12 digits.
This comment was minimized by the moderator on the site
Hello,Nathan,
As you said, when the numbers are longer than 12 digits, it will become scientific notation. The formula is not applied for this formatting.
This comment was minimized by the moderator on the site
well 4095 is not a prime. still it gives result as prime no though. its incorrect.
This comment was minimized by the moderator on the site
Hello, vaibhav,
When you pasting above formula, you should press Ctrl + Shift + Enter keys together, not just Enter key, please try it again.
This comment was minimized by the moderator on the site
Your formula is not working. Eg. 1681 is NOT a prime but by formula it is.
=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime"))
This comment was minimized by the moderator on the site
Hello, Jan,
The above formula is correct, after pastingt the formula into a cell, you should press Ctrl + Shift + Enter keys together, not just Enter key.
Please try it again, thank you!
This comment was minimized by the moderator on the site
Yes, it was that case with CSE. Thanks (it's fixed now).
https://superuser.com/questions/674566/when-to-use-ctrlshiftenter-and-when-to-use-enter-in-excel

Btw Czech variant to:
=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime"))
is:
=KDYŽ(A2=2;"Prime";KDYŽ(A(MOD(A2;ŘÁDEK(NEPŘÍMÝ.ODKAZ("2:"&ROUNDUP(ODMOCNINA(A2);0))))<>0);"Prime";"Not Prime"))

Compare: https://imgur.com/a/4MgeV
This comment was minimized by the moderator on the site
this is my fastest version Sub generateprimenumbersbetween3() starting_number = 1 'input value here last_number = 30000 'input value here primenumbers = "" For a = starting_number To last_number c = a For b = 2 To c If a Mod b = 0 And c b Then Exit For Else If b = c Then primenumbers = primenumbers & " " & a Exit For Else If Round(a / (b + 1)) + 1 > b Then c = Round(a / (b + 1)) + 1 End If End If End If Next b Next a MsgBox primenumbers End Sub Sub ISPRIME3() number_to_be_checked = 2000000000 'input value here c = number_to_be_checked For b = 2 To c If number_to_be_checked Mod b = 0 And c b Then MsgBox "Not Prime. Divisible by " & b Exit Sub Else If b = c Then MsgBox "Prime" Exit Sub Else If Round(number_to_be_checked / (b + 1)) + 1 > b Then c = Round(number_to_be_checked / (b + 1)) + 1 End If End If End If Next b End Sub
This comment was minimized by the moderator on the site
The user defined function does not seem to work for numbers above ~16777213
This comment was minimized by the moderator on the site
Sub generateprimenumbersbetween() starting_number = 99990 'input value here last_number = 99999 'input value here primenumbers = "" For a = starting_number To last_number For b = 2 To a If a - b * Int(a / b) = 0 And a b Then Exit For Else If a = b Then primenumbers = primenumbers & " " & a End If End If Next b Next a MsgBox primenumbers End Sub Function primenumbersbetween(starting_number, last_number) primenumbers = "" For a = starting_number To last_number For b = 2 To a If a - b * Int(a / b) = 0 And a b Then Exit For Else If a = b Then primenumbers = primenumbers & " " & a End If End If Next b Next a primenumbersbetween = primenumbers End Function 'to check if a number is prime Sub ISPRIME() number_to_be_checked = 102 'input value here 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. Divisible by " & b Exit Sub Else If number_to_be_checked = b Then MsgBox "Prime" End If End If Next b End Sub 'to check if a number is prime Function ISPRIME2(number_to_be_checked) 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 ISPRIME2 = "Not Prime. Divisible by " & b Exit Function Else If number_to_be_checked = b Then ISPRIME2 = "Prime" End If End If Next b End Function
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations