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

Cum să verificați dacă numărul este numărul prim în Excel?

După cum știm cu toții, un număr prim este un număr natural care conține doar doi divizori de numere naturali distincti: unul și el însuși. Dacă aveți o listă de numere într-o foaie de lucru, cum ați putea verifica dacă numerele sunt numere prime?

Verificați dacă un număr este numărul prim cu formula matricei

Verificați dacă un număr este numărul prim cu funcția definită de utilizator


săgeată albastru dreapta balon Verificați dacă un număr este numărul prim cu formula matricei

Următoarea formulă vă poate ajuta să identificați numărul, indiferent dacă este sau nu un număr prim, vă rugăm să procedați astfel:

1. Introduceți următoarea formulă într-o celulă goală - C2, de exemplu, lângă datele dvs.:

=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime")) (A2 este celula conține numărul pe care doriți să îl verificați), apoi apăsați Ctrl + Shift + Enter tastele împreună și veți obține rezultatul, dacă numărul este prim, acesta va afișa „Prime” în celulă, dacă nu, va fi afișat „Not Prime”, vedeți captura de ecran:

doc verifică dacă prime 1

2. Apoi selectați celula C2 și trageți mânerul de umplere în jos către celulele pe care doriți să le aplicați această formulă și toate numerele vor fi identificate dacă este sau nu numărul prim. Vedeți captura de ecran:

doc verifică dacă prime 2


săgeată albastru dreapta balon Verificați dacă un număr este numărul prim cu funcția definită de utilizator

Următoarele Funcție definită de utilizator De asemenea, vă poate ajuta să verificați numerele dacă prime sau nu, vă rugăm să faceți următoarele:

1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.

Cod VBA: verificați dacă un număr este sau nu prim:

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. Apoi salvați și închideți acest cod, reveniți la foaia de lucru și introduceți această formulă: = checkprime (A2) într-o celulă goală lângă lista numerelor dvs., apoi glisați mânerul de umplere în jos până la celulele pe care doriți să le conțineți această formulă, dacă numărul este numărul prim, va afișa ADEVĂRAT, dacă nu, va afișa FALS, a se vedea captura de ecran:

doc verifică dacă prime 3


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (21)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut, imi place articolul tau. Mulțumesc mult. Testele mele simple au arătat că 99 a fost un număr prim, în timp ce 99 nu este, deoarece 99 este împărțit la 3 și 33, precum și la 1 și 99. Puteți să-mi spuneți ce este în neregulă cu operația mea?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Formula matrice de mai sus nu funcționează, dar funcția definită de utilizator face și a fost de mare ajutor. Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Formula matricei nu funcționează, dar funcția definită de utilizator funcționează și a fost de mare ajutor. Mulțumiri!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Funcția definită de utilizator nu pare să funcționeze pentru numerele de peste ~16777213
Acest comentariu a fost redus la minimum de moderatorul de pe site
Sub generatenumbersbetween() starting_number = 99990 'valoare de intrare aici last_number = 99999 'valoare de intrare aici primenumbers = "" Pentru a = starting_number La ultimul_număr Pentru b = 2 La a Dacă a - b * Int(a / b) = 0 Și ab Atunci Ieșire pentru Else Dacă a = b Atunci numere prime = numere prime & " " & a Sfârșit dacă Sfârșit Dacă Următorul b Următorul a MsgBox numere prime Sfârșit Sub Funcție numere prime între(număr_început, ultimul număr) numere prime = "" Pentru a = număr_început Până la ultimul_număr Pentru b = 2 Până a Dacă a - b * Int(a / b) = 0 Și ab Atunci Ieșire pentru Else Dacă a = b Atunci numere prime = numere prime & " " & a Sfârșit dacă Sfârșit Dacă Următorul b Următorul a numere prime între = numere prime Sfârșit Funcția 'pentru a verifica dacă un număr este prim Sub ISPRIME() number_to_be_checked = 102 'valoare introdusă aici Pentru b = 2 To number_to_be_checked Dacă number_to_be_checked - b * Int(number_to_be_checked / b) = 0 And _ number_to_be_checked b Apoi MsgBox "Nu se poate vedea prin Prime" & b. Sub Else If number_to_be_checked = b Atunci MsgBox „Prime” End If End If Next b End Sub 'pentru a verifica dacă un număr este prim Funcție ISPRIME2(număr_de_verificat) Pentru b = 2 Pentru a număr_de_verificat Dacă numărul_de_verificat - b * Int(număr_de_verificat / b) = 0 Și _număr_de_verificat b Apoi ISPRIME2 = "Nu prim. Divizibil cu " & b Funcția de ieșire Altfel Dacă number_to_be_checked = b Atunci ISPRIME2 = "Prime" End If End If Next b End Function
Acest comentariu a fost redus la minimum de moderatorul de pe site
aceasta este versiunea mea cea mai rapidă Subgenerareprimenumbersbetween3() starting_number = 1 'valoare de intrare aici last_number = 30000 'valoare de intrare aici primenumbers = "" Pentru a = starting_number La ultimul_număr c = a Pentru b = 2 La c Dacă un Mod b = 0 și cb Apoi Ieșire pentru Else Dacă b = c Atunci numere prime = numere prime & " " & a Ieșire pentru Else If Round(a / (b + 1)) + 1 > b Then c = Round(a / (b + 1)) + 1 End If End If End Dacă Urmează b Urmează a MsgBox numere prime End Sub Sub ISPRIME3() number_to_be_checked = 2000000000 'valoare introdusă aici c = number_to_be_checked Pentru b = 2 La c Dacă number_to_be_checked Mod b = 0 Și cb Atunci MsgBox „Nu este vizibil prin Prime” & b Di 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
Acest comentariu a fost redus la minimum de moderatorul de pe site
Formula ta nu funcționează. De exemplu. 1681 NU este un prim, ci după formulă este.
=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),"Prime","Not Prime"))
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Jan,
Formula de mai sus este corectă, după ce lipiți formula într-o celulă, ar trebui să apăsați simultan tastele Ctrl + Shift + Enter, nu doar tasta Enter.
Vă rugăm să încercați din nou, mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Da, a fost cazul cu CSE. Multumesc (acum s-a rezolvat).
https://superuser.com/questions/674566/when-to-use-ctrlshiftenter-and-when-to-use-enter-in-excel

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

Comparaţie: https://imgur.com/a/4MgeV
Acest comentariu a fost redus la minimum de moderatorul de pe site
bine 4095 nu este prim. totuși dă rezultat ca prim nu totuși. este incorect.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, vaibhav,
Când lipiți formula de mai sus, ar trebui să apăsați simultan tastele Ctrl + Shift + Enter, nu doar tasta Enter, vă rugăm să încercați din nou.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o eroare de referință atunci când introduceți numere care au mai mult de 12 cifre.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Nathan,
După cum ați spus, atunci când numerele sunt mai lungi de 12 cifre, va deveni notație științifică. Formula nu este aplicată pentru această formatare.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Da, a funcționat când am făcut Ctrl+Shift+Enter... !! Vă mulțumesc..:D și vă deranjează să explicați algoritmul, vă rog.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună.

Folosesc o versiune italiană de Excel, așa că formula nu funcționează și am o eroare. Ma poti ajuta?

Multumesc anticipat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Gian,
Dacă formula nu funcționează corect pentru dvs., puteți aplica a doua metodă - Funcția definită de utilizator. Vă rugăm să încercați, sper că vă poate ajuta!
Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Skyyang.
Daca poate fi de folos altor cercetatori, va informez ca am gasit aici solutia problemei mele => http://www.riolab.org/index.php?option=com_content&view=article&id=172&Itemid=68

Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cu siguranță există o problemă cu această ecuație. Am făcut un copy/paste direct și am verificat că este o copie fidelă, dar încă are 9, 15, 21, 25, 33, 35 și 39 ca numere prime, când evident că nu sunt. La o inspecție rapidă, se pare că factorii de 3 și 5 dă naștere unui fel de problemă. Este o formulă foarte complicată pentru o singură celulă - atât de mult încât nu pot afla ce încearcă să facă. De obicei, descompun astfel de lucruri în mai multe celule pentru a ușura depanarea (care, cred, este cea mai bună practică în Excel).
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cu siguranță există o problemă cu această ecuație. Am făcut un copy/paste direct și am verificat că este o copie fidelă, dar încă are 9, 15, 21, 25, 33, 35 și 39 ca numere prime, când evident că nu sunt. La o inspecție rapidă, se pare că factorii de 3 și 5 dă naștere unui fel de problemă. Este o formulă foarte complicată pentru o singură celulă - atât de mult încât nu pot afla ce încearcă să facă. De obicei, descompun astfel de lucruri în mai multe celule pentru a ușura depanarea (care, cred, este cea mai bună practică în Excel). Funcția pare să funcționeze, totuși.
Acest comentariu a fost redus la minimum de moderatorul de pe site
NU INTRODUCEȚI FORMULELE ÎN CELULĂ. Selectați celula, apoi lipiți formulele în bara de formule și apăsați ctrl+shft+Enter. ar trebui să pună { în jurul formulei} altfel este greșit.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Craig, mulțumesc - funcționează! Îmi pare rău, nu am citit instrucțiunile suficient de atent.
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL