কম্পিউটার টিউটোরিয়াল

1/n-এর দশমিক মানয়ের পিরিয়ডের দৈর্ঘ্য বের করা C++-তে


মনে করুন আমাদের একটি সংখ্যা n আছে। আমাদের 1/n-এর দশমিক মানয়ের পিরিয়ডের দৈর্ঘ্য বের করতে হবে। তাই যদি n-এর মান 7 হয়, তবে 1/7 = 0.142857142857... বল্ড অক্ষরের অংশটি পুনরাবৃত্ত হচ্ছে। তাই এখানে পিরিয়ডের দৈর্ঘ্য ৬।

একটি সংখ্যা n-এর জন্য, আউটপুটে nটি ভিন্ন রিমেইন্ডার থাকতে পারে, কিন্তু পিরিয়ড প্রথম রিমেইন্ডার থেকে শুরু নাও হতে পারে কারণ কিছু প্রাথমিক রিমেইন্ডার নন-রিপিটিং হতে পারে। তাই আমাদের নিশ্চিত করতে হবে যে একটি রিমেইন্ডার পিরিয়ড থেকে নেওয়া হয়েছে, (n+1)তম রিমেইন্ডার থেকে শুরু করুন, এবং পরবর্তী আবারিবার্তি খুঁজুন। (n+1)তম রিমেইন্ডার এবং পরবর্তী আবারিবার্তির মধ্যকার দূরত্বই পিরিয়ডের দৈর্ঘ্য।

উদাহরণ

#include <iostream>
using namespace std;

int periodLength(int n) {
    int remainder = 1;
    int length = 0;
    for (int i = 1; i <= n + 1; i++)
        remainder = (10 * remainder) % n;
    int d = remainder;
    do {
        remainder = (10 * remainder) % n;
        length++;
    } while (remainder != d);
    return length;
}

int main() {
    int n = 7;
    cout << "Period length of 1/" << n << " is: " << periodLength(n) << endl;
}

আউটপুট

Period length of 1/7 is: 6

  1. C++-এ লিংকড লিস্টে লুপের দৈর্ঘ্য বের করুন

  2. ট্রির শেষ সারির বামপাশের মান C++-এ

  3. ক্যারেক্টারের ASCII মান বের করার C++ প্রোগ্রাম

  4. অয়লারের সংখ্যা e এর মান গণনার পাইথন প্রোগ্রাম