અગ્લી નંબર લેટકોડ સોલ્યુશન


મુશ્કેલી સ્તર સરળ
મઠ

સમસ્યા નિવેદન

આ સમસ્યામાં અમને એક નંબર આપવામાં આવે છે અને આપણે તપાસ કરવી પડશે કે તે કદરૂપું નંબર છે કે નહીં.
આપ્યું છે કે નીચ નંબરો એ સકારાત્મક સંખ્યા છે જેના મુખ્ય પરિબળોમાં ફક્ત 2, 3, 5 શામેલ છે.
1 ને પણ સામાન્ય રીતે નીચ નંબર તરીકે ગણવામાં આવે છે.

ઉદાહરણ

6
true

સમજૂતી: 6 = 2 × 3

14
false

સમજૂતી: 14 = 2 × 7
14 નીચ નથી કારણ કે તેમાં અન્ય મુખ્ય પરિબળ 7 શામેલ છે.

અભિગમ

સમસ્યા નિવેદનથી તે સ્પષ્ટ છે કે, નીચ નંબર બનવા માટે તેમાં કોઈપણ હોવું જોઈએ નહીં મુખ્ય પરિબળો 2,3 અને 5 સિવાય.

આપણે જાણીએ છીએ કે દરેક સંખ્યા એક અથવા વધુ પ્રાઇમ નંબરો (1 સિવાય) ની કેટલીક શક્તિઓના ઉત્પાદન દ્વારા રચાય છે. તેથી આપણે સંખ્યાને તેના મુખ્ય પરિબળોમાં પરિબળ બનાવી શકીએ છીએ અને તે જોઈ શકીએ છીએ કે તેમાં 2,3 અને 5 સિવાય મુખ્ય સંખ્યા છે કે નહીં.

પરિબળ દ્વારા અર્થ એ છે કે જો મુખ્ય સંખ્યા કોઈ સંખ્યાને સંપૂર્ણ રીતે વિભાજિત કરી શકે છે તો તે તે ચોક્કસ સંખ્યાના પરિબળ હશે. તેથી જો સંખ્યા 2 દ્વારા વિભાજીત થાય તો આપણે આપેલ સંખ્યાને 2 દ્વારા વિભાજીત કરી શકીએ છીએ, આમ પરિબળ 1 ની પહેલી શક્તિને દૂર કરીશું, જ્યાં સુધી 2 ની બધી શક્તિઓ નંબરમાંથી દૂર નહીં થાય ત્યાં સુધી અમે વારંવાર 2 દ્વારા વિભાજીત કરીશું.
એ જ રીતે આપણે ફેક્ટર 3 અને 5 ની બધી શક્તિઓ પણ દૂર કરીશું.

હવે તે સ્પષ્ટ થઈ ગયું છે કે જો સંખ્યામાં 2,3 અને 5 સિવાયના કોઈપણ મુખ્ય પરિબળો છે, તો હાલની બાકીની સંખ્યા 1 ની બરાબર નહીં હોય.
તેથી અંતે જો સંખ્યા 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 દ્વારા ભાગ આપી રહ્યા છીએ જ્યારે લૂપ વારંવાર. તેથી સમય જટિલતા ઓ (લોગ (એન)) હશે, જ્યાં n આપેલ સંખ્યા છે.

અવકાશ જટિલતા 

ઓ (1): અમે કોઈ વધારાની જગ્યાનો ઉપયોગ કરી રહ્યાં નથી, તેથી તે સતત છે.