कुरुप क्रमांक लीटकोड सोल्यूशन


अडचण पातळी सोपे
गणित

समस्या विधान

या समस्येमध्ये आम्हाला एक नंबर देण्यात आला आहे आणि ती कुरुप आहे की नाही हे तपासायचे आहे.
कुरुप संख्या सकारात्मक संख्या आहेत ज्याच्या मुख्य घटकांमध्ये फक्त 2, 3, 5 समाविष्ट आहे.
तसेच 1 सहसा कुरूप नंबर म्हणून गणले जाते.

उदाहरण

6
true

स्पष्टीकरण: 6 = 2 × 3

14
false

स्पष्टीकरण: 14 = 2 × 7
14 हे कुरूप नाही कारण त्यात आणखी एक मुख्य घटक 7 समाविष्ट आहे.

दृष्टीकोन

समस्या विधानातून हे स्पष्ट आहे की, कुरुप संख्या असेल तर त्यामध्ये कोणतीही संख्या असू शकत नाही मुख्य घटक २,2,3 आणि than व्यतिरिक्त.

आम्हाला माहित आहे की प्रत्येक संख्या एक किंवा अधिक मुख्य संख्येच्या (1 सोडून) काही शक्तींच्या उत्पादनाद्वारे तयार केली जाते. म्हणून आम्ही संख्येला त्याच्या मुख्य घटकांमध्ये घटक बनवू शकतो आणि त्यात २,2,3 आणि than व्यतिरिक्त इतर मुख्य क्रमांक आहेत की नाही हे आपण पाहू शकतो.

फॅक्टरिझेशनचा अर्थ असा की जर एखादी प्राथमिक संख्या पूर्णत: एखाद्या संख्येला विभागू शकते तर ती त्या विशिष्ट संख्येचा घटक असेल. म्हणून जर संख्या 2 ने विभाजित करण्यायोग्य असेल तर आम्ही दिलेली संख्या 2 ने भागवू, अशा प्रकारे घटक 1 ची पहिली शक्ती काढून टाकू. 2 पासून सर्व शक्ती काढून टाकल्याशिवाय आम्ही वारंवार 2 ने भाग करू.
त्याचप्रमाणे आपण घटक 3 आणि 5 च्या सर्व शक्ती देखील काढून टाकू.

आता हे स्पष्ट झाले आहे की संख्यामध्ये २,2,3 आणि than व्यतिरिक्त इतर कोणतेही मूलभूत घटक असल्यास, उर्वरित संख्या १ समान होणार नाही.
अखेरीस जर संख्या 1 झाली तर ती एक कुरुप संख्या आहे आणि आपण सत्य परत मिळवितो, अन्यथा आपण खोटे परत करतो.

अंमलबजावणी

सी ++ प्रोग्राम कुरुप संख्या लीटकोड सोल्यूशनसाठी

#include <bits/stdc++.h>
using namespace std;

bool isUgly(int num) 
{	
  if(num<=0) return false;
   
  while(num%2==0) num/=2;
  while(num%3==0) num/=3;
  while(num%5==0) num/=5;
  
  if(num==1) return true; 
    else return false;
}

int main() 
{
    int num=8;
  
  if(isUgly(num))
    cout<<"true"<<endl;
  else
    cout<<"false"<<endl;

  return 0; 
}
true

कुरुप संख्या लीटकोड सोल्यूशनसाठी जावा प्रोग्राम

import java.util.*;
import java.lang.*;


class UglyNumber
{  
   public static boolean isUgly(int num) 
   {
        if(num<=0) return false;
       
        while(num%2==0) num/=2;
        while(num%3==0) num/=3;
        while(num%5==0) num/=5;
        
        if(num==1) return true; 
        else return false;
        
    }
    
    public static void main(String args[])
    {
        int num=8;

        System.out.println(isUgly(num));
        
    }
}
true

कुरूप नंबर लीटकोड सोल्यूशनसाठी जटिलता विश्लेषण

वेळ कॉम्प्लेक्सिटी

ओ (लॉग (एन)): आम्ही संख्या 2, 3 आणि 5 मध्ये लूपमध्ये वारंवार करत आहोत. म्हणून वेळ जटिलता ओ (लॉग (एन)) असेल जिथे एन दिलेली संख्या आहे.

स्पेस कॉम्प्लेक्सिटी 

ओ (1): आम्ही कोणतीही अतिरिक्त जागा वापरत नाही, म्हणूनच ती स्थिर आहे.