স্ব বিভাজন নম্বর


কাঠিন্য মাত্রা সহজ
প্রায়শই জিজ্ঞাসা করা হয় রৌদ্রপক্ব ইষ্টক এপিক সিস্টেম টেসলা
ম্যাথ

একটি নম্বর একটি স্ব বিভাজক সংখ্যা হিসাবে পরিচিত যদি -

১. সংখ্যার সাথে প্রতিটি অঙ্কের মোড শূন্য is

২. সংখ্যাটিতে সমস্ত শূন্য নম্বরের সংখ্যা থাকা উচিত।

উদাহরণস্বরূপ - 128

128% 1 = 0, 128% 2 = 0, 128% 8 = 0

সুতরাং এটি একটি স্ব বিভাজক সংখ্যা।

স্ব বিভাজন নম্বর

উদাহরণ

ইনপুট: 128

আউটপুট: হাঁ

ইনপুট: 10

আউটপুট: না

ব্যাখ্যা

প্রদত্ত নম্বরটি = 128 দিন

প্রদত্ত সংখ্যার মান ধরে রাখতে একটি অস্থায়ী ভেরিয়েবল এবং বর্তমান অঙ্কটি সংরক্ষণ করার জন্য অন্য ভেরিয়েবল ডিজিট তৈরি করুন।

প্রদত্ত নম্বরটি স্ব-বিভাগকারী নম্বর কিনা তা যাচাই করার পদক্ষেপ -

  • প্রাথমিকভাবে n = 128, অস্থায়ী = 128, সংখ্যা = 0।
  • পদক্ষেপ 1: অঙ্ক = 8 এবং n% অঙ্ক = 0 অর্থাত 128% 8 = 0, অতএব, অস্থায়ী = 12।
  • পদক্ষেপ 2: অঙ্ক = 2 এবং n% অঙ্ক = 0 অর্থাত 128% 2 = 0, অতএব, অস্থায়ী = 1।
  • পদক্ষেপ 3: অঙ্ক = 1 এবং n% অঙ্ক = 0 অর্থাত 128% 1 = 0, অতএব, অস্থায়ী = 0।

প্রদত্ত সংখ্যা 128 এর সমস্ত অঙ্কগুলি প্রদত্ত সংখ্যাটিকে সম্পূর্ণ বিভাজন হিসাবে, আমরা বলতে পারি প্রদত্ত সংখ্যাটি একটি স্ব বিভাজক সংখ্যা।

অ্যালগরিদম

  1. একটি পূর্ণসংখ্যার ভেরিয়েবল / সংখ্যা এন শুরু করুন।
  2. একটা তৈরি কর ক্রিয়া প্রদত্ত নম্বরটি স্ব-বিভাজন কিনা তা যা কিনা এটি একটি পরামিতি হিসাবে কোনও পূর্ণসংখ্যা মান গ্রহণ করে।
  3. পূর্ণসংখ্যা টাইপের একটি অস্থায়ী পরিবর্তনশীল তৈরি করুন এবং এতে n এর মান সংরক্ষণ করুন।
  4. অস্থায়ী ভেরিয়েবলের মধ্য দিয়ে অতিক্রম করুন এবং অস্থায়ী ভেরিয়েবল 0 এর চেয়ে বেশি হয়ে গেলে, অঙ্কগুলি সংরক্ষণ করতে এবং এতে প্রদত্ত সংখ্যার শেষ সংখ্যাটি সংরক্ষণ করতে আরেকটি সংখ্যার ভেরিয়েবল তৈরি করুন।
  5. এর পরে, পরীক্ষা করুন যে ডিজিটের ভেরিয়েবল 0 এবং প্রদত্ত সংখ্যার মোডের সমান নয় এবং অঙ্ক ভেরিয়েবল 0 হয়, অস্থায়ী ভেরিয়েবল আপডেট করুন 10 দ্বারা বিভক্ত অস্থায়ী ভেরিয়েবল হিসাবে অন্যটি মিথ্যা ফেরত দেয়।
  6. সত্য ফিরে।
  7. যদি প্রত্যাবর্তিত মানটি সত্যের সমান হয় তবে "হ্যাঁ" মুদ্রণ করুন। অন্য মুদ্রণ "না"।

স্ব বিভাজক সংখ্যাগুলি পরীক্ষা করার জন্য সি ++ প্রোগ্রাম

#include <bits/stdc++.h> 
using namespace std; 
  
bool isDivisible(int n, int digit){ 
    
    return ((digit != 0) && (n % digit == 0)); 

} 
  
bool selfDivide(int n){ 
    int temp = n; 
    while(temp > 0){ 
  
        int digit = n % 10; 
        if(!(isDivisible(n, digit))) 
            return false; 
  
        temp /= 10; 
    } 
    return true; 
} 
  
int main(){ 
    int n = 128; 
    if(selfDivide(n)) 
        cout<<"Yes"; 
    else
        cout<<"No"; 
    return 0; 
}
Yes

নিজের বিভাজক সংখ্যাগুলি পরীক্ষা করার জন্য জাভা প্রোগ্রাম

import java.io.*; 
  
class Divide{ 
  
    static boolean isDivisible(int n, int digit){ 
        
        return((digit != 0) && (n % digit == 0)); 
    
    } 
  
    static boolean selfDivide(int n){ 
        int temp = n; 
        while(temp > 0) { 
  
            int digit = n % 10; 
  
            if((isDivisible(n, digit)) == false) 
                return false; 
  
            temp /= 10; 
        } 
        return true; 
    } 
  
    public static void main(String args[]){ 
        int n = 128; 
  
        if(selfDivide(n)) 
            System.out.println("Yes"); 
        else
            System.out.println("No"); 
    } 
}
Yes

জটিলতা বিশ্লেষণ

সময় জটিলতা: ও (এল) (এল প্রদত্ত সংখ্যার অঙ্কের সংখ্যা)

স্পেস জটিলতা: ও (1) কারণ আমরা ধ্রুবক স্থান ব্যবহার করেছি।

তথ্যসূত্র