ઉકેલાયેલ: સંખ્યા અવિભાજ્ય છે કે કેમ તે તપાસો

સંખ્યા અવિભાજ્ય છે કે કેમ તે સમજવું એ ગણિતમાં મૂળભૂત ખ્યાલ છે. પ્રાઇમ નંબર્સમાં ક્રિપ્ટોગ્રાફીથી લઈને કોમ્પ્યુટર સાયન્સમાં સ્યુડોરેન્ડમ નંબર્સ બનાવવા સુધીની વિશાળ શ્રેણી હોય છે. આજે, અમે હાસ્કેલ, એક કાર્યાત્મક પ્રોગ્રામિંગ લેંગ્વેજ સાથે આ વિભાવનામાં ખોદવા જઈ રહ્યા છીએ. અમે સોલ્યુશનથી શરૂઆત કરીશું, પછી પગલું-દર-પગલાં કોડનું વિશ્લેષણ કરીશું. વધુમાં, આ લેખ વિવિધ પુસ્તકાલયો અને કાર્યોમાં મુખ્ય સંખ્યા વિશેની આંતરદૃષ્ટિનો સમાવેશ કરે છે.

નિશેષ રીતે ભાગી ના શકાય તેવા અંંક એવી સંખ્યા તરીકે વ્યાખ્યાયિત કરવામાં આવે છે કે જેમાં માત્ર બે વિશિષ્ટ પ્રાકૃતિક સંખ્યાના વિભાજકો હોય: 1 અને પોતે. સંખ્યા અવિભાજ્ય છે કે કેમ તે ચકાસવા માટેના કાર્યમાં તે નિર્ધારિત કરવાનો સમાવેશ થાય છે કે શું સંખ્યાના 1 અને તેના સિવાય અન્ય કોઈ વિભાજકો છે.

હવે, ચાલો હાસ્કેલમાં ઉકેલ જોઈએ.

isPrime :: Int -> Bool
isPrime n = નલ [ x | x <- [2..n - 1], n `mod` x == 0] [/code]

કોડને સમજવું

આ કોડમાં, અમારી પાસે 'isPrime' નામનું ફંક્શન છે, તે તેની દલીલ તરીકે પૂર્ણાંક લે છે જે બુલિયન મૂલ્ય પરત કરે છે. આ ફંક્શન હાસ્કેલના ઇન-બિલ્ટ 'નલ' ફંક્શનનો ઉપયોગ કરે છે, જે તપાસે છે કે તેને આપવામાં આવેલી સૂચિ ખાલી છે કે નહીં.

અવિભાજ્ય સંખ્યાના તર્કને સૂચિ સમજણના સ્વરૂપમાં લાગુ કરવામાં આવ્યો છે. સૂચિની સમજણની અંદર, અમે 2 થી (n-1) સુધીની સંખ્યાઓની સૂચિ બનાવીએ છીએ અને તપાસીએ છીએ કે આમાંના કોઈપણ ઘટકો દ્વારા 'n' વિભાજ્ય છે કે નહીં.

  • [2..n-1] : સંખ્યા કરતાં 2 થી એક નાની સંખ્યાઓની યાદી બનાવે છે.
  • n `મોડ` x : ચકાસે છે કે જનરેટ કરેલી સૂચિમાંની કોઈપણ સંખ્યા વડે n નંબર વિભાજ્ય છે કે નહીં.

જો સંખ્યા વિભાજ્ય હોય, તો આપણે કહીએ છીએ કે સંખ્યા અવિભાજ્ય સંખ્યા નથી, અન્યથા તે અવિભાજ્ય સંખ્યા છે. નલ ફંક્શન તપાસે છે કે જનરેટ થયેલ યાદી ખાલી છે કે નહી. જો તે છે, તો 'નલ' પરત કરે છે સાચું દર્શાવે છે કે સંખ્યા પ્રાઇમ છે.

હાસ્કેલ લાઇબ્રેરીઓ અને ફંક્શન્સ સપોર્ટિંગ પ્રાઇમ ચેક્સ

હાસ્કેલ અસંખ્ય પુસ્તકાલયો અને કાર્યો પ્રદાન કરે છે જે તમને અવિભાજ્ય સંખ્યાઓ સાથે વ્યવહાર કરવામાં મદદ કરી શકે છે. આમાંના કેટલાકનો સમાવેશ થાય છે:

  • 'નંબર્સ' પેકેજ ફંક્શનની શ્રેણી પૂરી પાડે છે જે અવિભાજ્ય સંખ્યાઓને ચાળણી કરી શકે છે, અવિભાજ્ય સંખ્યાઓ જનરેટ કરી શકે છે અને પ્રાથમિકતા ચકાસી શકે છે.
  • 'Math.NumberTheory.Primes' એ પ્રાઇમ નંબર મેનીપ્યુલેશન માટે અન્ય સમર્પિત પુસ્તકાલય છે.
  • 'અરિથમોઈ' એ હાસ્કેલ લાઇબ્રેરી છે જે નંબર થિયરી પેરાડિમ્સ પર કેન્દ્રિત છે. તેમાં પ્રાઇમ નંબર્સ, ફેક્ટરિંગ કમ્પોઝિશન અને ઘણું બધું બનાવવા માટે અલ્ગોરિધમનો સમાવેશ થાય છે.

હાસ્કેલ પાસે ઇન-બિલ્ટ લાઇબ્રેરી ફંક્શન્સ હોવા છતાં, પ્રાઇમ નંબર્સ તપાસવા પાછળના તર્કને શીખવા અને વિઘટન કરવાથી તમને ભાષાનો મજબૂત પાયો મળે છે અને તમને વધુ અદ્યતન સમસ્યાઓનો સામનો કરવા માટે પ્રાઇમ મળે છે. હાસ્કેલ જેવી ભાષાના ઊંડા કાર્યને સમજવાની વાત આવે ત્યારે આ હેન્ડ-ઓન ​​અભિગમ સામાન્ય રીતે વધુ સારો હોય છે.

વધુ તપાસ આર

અવિભાજ્ય સંખ્યાની ચકાસણીને સમજવું ઘણી ગાણિતિક સમસ્યાઓનો આધાર બનાવે છે. પ્રાથમિકતાની ચકાસણી ઉપરાંત, તમે આમાં પણ તપાસ કરી શકો છો:

  • આપેલ મર્યાદા સુધી તમામ અવિભાજ્ય સંખ્યાઓ જનરેટ કરવી
  • ચોક્કસ મર્યાદા સુધી અવિભાજ્ય સંખ્યાઓની સંખ્યા નક્કી કરવી (પ્રાઈમ કાઉન્ટિંગ ફંક્શન)
  • સંખ્યાને અવિભાજ્યમાં અવયવિત કરવું
  • હાસ્કેલમાં આ બધી સમસ્યાઓના અસરકારક ઉકેલો છે જે ગાણિતિક સમસ્યાઓ ઉકેલવામાં કાર્યાત્મક પ્રોગ્રામિંગની શક્તિ અને સુંદરતા દર્શાવે છે.

સંબંધિત પોસ્ટ્સ:

પ્રતિક્રિયા આપો