بدصورت نمبر ليٽ ڪوڊ حل


تڪليف جي سطح آسان
Math

مسئلي جو بيان

انهي مسئلي ۾ اسان کي هڪ نمبر ڏنو ويو آهي ۽ اسان کي چڪاس ڪرڻو آهي ته آيا اهو هڪ بدصورت نمبر آهي يا نه.
ڏنو ويو آھي ته بدصورت نمبر مثبت نمبر آھن جن جا اھم عوامل صرف 2 ، 3 ، 5 شامل آھن.
عام طور تي 1 پڻ عام طور تي بدصورت نمبر سمجهيو ويندو آهي.

مثال

6
true

وضاحت: 6 = 2 × 3

14
false

وضاحت: 14 = 2 × 7
14 بدصورت نه آهي ڇاڪاڻ ته انهي ۾ هڪ ٻيو ترقي پسند عنصر 7 شامل آهي.

چرچو

مسئلي جي بيان مان اهو واضح آهي ته ، بدصورت هجڻ لاءِ هن کي ڪا شي نه هجڻ گهرجي خاص عنصر 2,3،5 ۽ XNUMX کانسواءِ.

اسان thatاڻون ٿا ته هر نمبر هڪ يا وڌيڪ پرائم نمبرن جي ڪجهه طاقتن جي پيداوار سان ٺهيل آهي (1 کان سواءِ). انهي ڪري اسان نمبر کي پنھنجي اھم عوامل ۾ شامل ڪري سگھون ٿا ۽ ڏسون ته اھو 2,3،5 ۽ XNUMX کان سواءِ خاص نمبر تي مشتمل آھي يا نه.

فڪر ڪرڻ جو مطلب اهو آهي ته جيڪڏهن پهريون نمبر پوري طرح هڪ نمبر کي ورهائي سگهي ٿو ته اهو انهي خاص نمبر جو عنصر هوندو. تنهن ڪري جيڪڏهن نمبر 2 طرفان ورهائجي وڃي ته اسان ڏنل نمبر کي 2 ذريعي ورهائي سگهون ٿا ، اهڙيءَ ريت عنصر جي 1 جي طاقت کي ختم ڪري ٿي. 2 کي بار بار ورهائينداسين جيستائين عدد جي 2 جي طاقت ختم نه ٿي وڃي.
ساڳي طرح اسين عنصر 3 ۽ 5 جي سڀني طاقتن کي به ختم ڪنداسين.

ھاڻي اھو واضح آھي ته جيڪڏهن نمبر 2,3،5 ۽ 1 کانسواءِ ٻين اھم عوامل تي مشتمل آھي ، موجوده باقي تعداد XNUMX جي برابر نه ھجي.
انهي ڪري آخرڪار جيڪڏهن نمبر 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 ۾ ورهائي رهيا آهيون جڏهن ته لوپ بار بار. ان ڪري وقت جي پيچيدگي O (log (n)) ٿيندي ، جتي n ڏنل ڏنل تعداد هوندو.

خلائي پيچيدگي 

اي (1): اسان ڪا اضافي جاءِ استعمال نه ڪري رهيا آهيون ، ان ڪري اهو مستقل آهي.