START, END রেঞ্জ দেওয়া আছে। লক্ষ্য হল [START, END] রেঞ্জে যেসব সংখ্যার প্রাইম ফ্যাক্টর শুধু ২ এবং ৩, তাদের সংখ্যা বের করা।
রেঞ্জে লুপে প্রতিটি সংখ্যা num-কে ২ ও ৩ দিয়ে যতদূর যায় ভাগ করা হয়। শেষে num=1 হলে সেটি শুধু ২ ও ৩ প্রাইম ফ্যাক্টর ধারণ করে।
ইনপুট: START=20, END=25
আউটপুট: শুধু ২ ও ৩ প্রাইম ফ্যাক্টর য números: ১
ব্যাখ্যা: ২৪ = ২×২×২×৩ (অন্যদের ৫, ৭, ১১ ইত্যাদি প্রাইম ফ্যাক্টর আছে)
ইনপুট: START=1000, END=1500
আউটপুট: সংখ্যা: ৪ (১০২৪, ১১৫২, ১২৯৬, ১৪৫৮)
- START, END নেওয়া হয়।
twothreeFactors(int start, int end)ফাংশন কাউন্ট রিটার্ন করে।- রেঞ্জে লুপে num-কে ২ ও ৩ দিয়ে ভাগ করে ১ হলে count বাড়ানো হয়।
#includeusing namespace std; int twothreeFactors(int start, int end){ if (start == 1) start++; int count = 0; for (int i = start; i <= end; i++){ int num = i; while(num > 1){ if(num % 2 == 0) num /= 2; else if(num % 3 == 0) num /= 3; else break; } if(num == 1) count++; } return count; } int main(){ int START = 10, END = 20; cout << "শুধু ২ ও ৩ প্রাইম ফ্যাক্টর য সংখ্যা: " << twothreeFactors(START, END); return 0; }
উপরোক্ত কোড রান করলে আউটপুট:
শুধু ২ ও ৩ প্রাইম ফ্যাক্টর য সংখ্যা: ৩