আর্মস্ট্রং নম্বর


কাঠিন্য মাত্রা মধ্যম
প্রায়শই জিজ্ঞাসা করা হয় আকাশবাণী অথবা VMware
ম্যাথ

সমস্যা বিবৃতি

N সংখ্যা সহ একটি সংখ্যার x যাক। যদি প্রতিটি অঙ্কের যোগফল হয় ক্ষমতা n নিজেই সংখ্যার সমান, তারপরে সংখ্যাটি আর্মস্ট্রং সংখ্যা হিসাবে বলা হয়

এবিসি… = পাও (ক, এন) + পাউ (বি, এন) + পাউ (সি, এন) + ……

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

উদাহরণ

153
Yes

ব্যাখ্যা: 13 + + 53 + + 33

= 1 + 125 + 27

= 153 অতএব, 153 একটি আর্মস্ট্রং সংখ্যা।

1634
Yes
123
No

অ্যালগরিদম

1. Initialize an integer variable n.
2. Create a function to check the armstrong number which accepts an integer variable as it's parameter.
3. Find the length of the number.
4. Iterate while the number is greater than 0, mod number with 10. Find the digit's power n and add to sum. Divide the number by 10.
5. Check if sum and original number are equal or not.
6. If yes, Print "Yes".
7. Else print "No".

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

সময় জটিলতা:

ও (লগ (এন) * লগ (লগ (এন)) যেখানে n হল প্রদত্ত পূর্ণসংখ্য পরিবর্তনশীলের অঙ্কের সংখ্যা কারণ আমরা সংখ্যার সমস্ত সংখ্যার জন্য ক্ষতিকারক খুঁজে পাচ্ছি।

স্পেস জটিলতা:

ও (1) কারণ আমরা ধ্রুবক স্থান ব্যবহার করেছি।

সি ++ প্রোগ্রাম

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

int expo(int a, int b){
    int res = 1;
    while(b>0){
        if(b&1)
            res = res*a;
        a = a*a;
        b = b>>1;
    }
    return res;
}

bool checkArmstrong(int x){
    int l = 0, n = x;
    while(n){
        l++;
        n = n/10;
    }
    int sum=0;
    n = x;
    while(n){
        int digit = n%10;
        sum += expo(digit, l);
        n = n/10;
    }
    return(sum == x);
}

int main(){
    int n = 153;
    if(checkArmstrong(n))
        cout<<"Yes";
    else
        cout<<"No";
    return 0;
}
Yes

জাভা প্রোগ্রাম

import java.lang.Math;
class Armstrong{ 
    
    boolean checkArmstrong(int x){ 
        int l = 0, n = x; 
        while(n!=0){ 
            l++; 
            n = n/10; 
        }
        int sum=0;
        int num = x;
        while(num!=0){ 
            int digit = num%10; 
            sum += Math.pow(digit, l); 
            num = num/10; 
        }
        return(sum == x); 
    } 
  
    public static void main(String[] args){ 
        Armstrong a = new Armstrong(); 
        int n = 153; 
        if(a.checkArmstrong(n))
            System.out.println("Yes");
        else
            System.out.println("No");
    } 
}
Yes

N'th আর্মস্ট্রং নম্বর খুঁজতে একটি প্রোগ্রাম লিখুন।

উদাহরণ:

11
370

ব্যাখ্যা: 11 তম আর্মস্ট্রং সংখ্যা 370।

15
8208

অ্যালগরিদম

1. একটি পূর্ণসংখ্যার পরিবর্তনশীল এন।

2. আর্মস্ট্রং নম্বর যাচাই করার জন্য একটি ফাংশন তৈরি করুন যা পূর্ণসংখ্যার ভেরিয়েবলটিকে প্যারামিটার হিসাবে গ্রহণ করে।

৩. শেষ সংখ্যাটি পেতে 3 এর সাথে মোড সংখ্যাটি 1 থেকে একটি পূর্ণসংখ্যার উপর পর্যালোচনা করুন। অঙ্কটির পাওয়ার এন অনুসন্ধান করুন এবং যোগফল যোগ করুন।

4. সংখ্যাটি 10 ​​দ্বারা ভাগ করুন।

৫. বর্তমানের পুনরাবৃত্ত সংখ্যাগুলির সমষ্টি সমান কিনা তা পরীক্ষা করুন, গণনা বৃদ্ধি করুন।

Count. গণনা যদি n এর সমান হয় তবে বর্তমান পুনরাবৃত্ত সংখ্যাটি প্রদান করুন।

সময় জটিলতা:

ও (লগ (এন) * লগ (লগ (এন)) যেখানে n হল প্রদত্ত পূর্ণসংখ্য পরিবর্তনশীলের সংখ্যা সংখ্যা।

স্পেস জটিলতা:

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

সি ++ প্রোগ্রাম

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

int expo(int a, int b){
    int res = 1;
    while(b>0){
        if(b&1)
            res = res*a;
        a = a*a;
        b = b>>1;
    }
    return res;
}

int nthArmstrong(int n){
    int count=0;

    for(int i=1; i<=INT_MAX; i++){
        int num=i, rem, digit=0, sum=0;

        digit =(int)log10(num)+1;

        while(num>0){
            rem = num % 10;
            sum = sum + expo(rem,digit);
            num = num / 10;
        }
        if(i == sum)
            count++;
        if(count==n)
            return i;
    }
}

int main(){
    int n = 15;
    cout<<nthArmstrong(n);
    return 0;
}
8208

জাভা প্রোগ্রাম

import java.lang.Math; 
  
class Armstrong{ 
      
    static int nthArmstrong(int n){ 
        int count = 0; 
          
        for(int i=1; i<=Integer.MAX_VALUE; i++){ 
            int num = i, rem, digit = 0, sum = 0; 
              
            digit = (int) Math.log10(num) + 1; 
              
            while(num > 0){  
                rem = num % 10; 
                sum = sum + (int)Math.pow(rem, digit); 
                num = num / 10; 
            } 
              
            if(i == sum) 
                count++; 
            if(count == n) 
                return i; 
        } 
        return n; 
    } 
      
    public static void main(String[] args){ 
        int n = 15; 
        System.out.println(nthArmstrong(n)); 
    } 
}
8208