কখনও কখনও, যখন আমি অলসভাবে আমার সামনে যা কিছু নম্বর পপ করে ফ্যাক্টর চেষ্টা করি, কিছুক্ষণ পরে আমি বুঝতে পারি যে এটি আমার চিন্তাভাবনার চেয়ে সহজ। নিন 2156উদাহরণস্বরূপ: এটা শেষ পর্যন্ত আমাকে যেটা উভয় 21এবং 56এর গুণিতক 7, এবং তাই অবশ্যই 2156 = 21 x 100 + 56এছাড়াও একটি একাধিক 7।
আপনার টাস্কটি এমন কিছু কোড লিখুন যা এই ধরণের কাকতালীয় কারণে একক সংখ্যাগুলির পক্ষে শনাক্ত করা সহজ factor
আরো স্পষ্ট করে:
এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ইতিবাচক পূর্ণসংখ্যাকে nইনপুট হিসাবে গ্রহণ করে এবং যদি কোনও বিভাজক d(এর চেয়েও বেশি 1) উপস্থিত থাকে তবে সত্যবাদী মান ফেরত দেয় যা দুটিকে nদুটি ধনাত্মক পূর্ণসংখ্যার জন্য কাটা যেতে পারে, যার প্রতিটিই একাধিক d; মিথ্যা মান না ফেরৎ যদি।
- "দুটি টুকরো টুকরো করা" এর অর্থ যা আপনি মনে করেন: সাধারণ বেস -10 উপস্থাপনাটি
nকোনও এক সময় সামনের অর্ধেকের অর্ধেক অংশে বিভক্ত হয়ে অন্য দুটি বেস -10 পূর্ণসংখ্যা অর্জন করে। এটি ঠিক আছে যদি দ্বিতীয় পূর্ণসংখ্যার একটি শূন্য শূন্য থাকে (তবে মনে রাখবেন এটি অবশ্যই ইতিবাচক পূর্ণসংখ্যার, সুতরাং এতে বিভক্ত1230হওয়া123এবং0বৈধ নয়)। - সত্যবাদী এবং মিথ্যা মানগুলি ইনপুটটির উপর নির্ভর করতে পারে। উদাহরণস্বরূপ, যদি কোনও ননজারো পূর্ণসংখ্যা আপনার পছন্দের ভাষাতে সত্যবাদী হয়, তবে আপনাকে বিভাজক
dবা তার "টুকরা" এর মধ্যে একটিn(বাnসেই বিষয়টির জন্য) ফেরত দিতে আপনাকে স্বাগত জানানো হবে । - উদাহরণস্বরূপ, সেটে কমপক্ষে দুটি অঙ্ক সহ যে কোনও সংখ্যক
{2, 4, 6, 8}একটি সত্যবাদী মান অর্জন করবে: কেবল প্রথম অঙ্কের পরে এটি ভাগ করুন। এছাড়াও উদাহরণস্বরূপ, যে কোনও মৌলিক সংখ্যাnএকটি মিথ্যা মান প্রদান করবে, কোনও এক-সংখ্যা সংখ্যা হিসাবে। - নোট করুন যে এটি প্রধান বিভাজক বিবেচনা করা যথেষ্ট
d। - আপনি ইনপুটটি বৈধ বলে ধরে নিতে পারেন (এটি একটি ধনাত্মক পূর্ণসংখ্যা)।
এটি কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী। তবে সমস্ত ভাষায় সমাধানগুলি স্বাগত, তাই আমরা সামগ্রিকভাবে সংক্ষিপ্ততম কোডটি নয়, প্রতিটি ভাষায় স্বল্পতম কোডের জন্য প্রচেষ্টা করতে পারি।
পরীক্ষার মামলা
(আপনাকে কেবলমাত্র সত্যবাদী বা মিথ্যা মান আউটপুট করতে হবে; নীচের টীকাগুলি কেবল ব্যাখ্যার মাধ্যমে।) সত্যবাদী মানগুলি প্রাপ্ত কিছু তথ্য হ'ল:
39 (3 divides both 3 and 9)
64 (2 divides both 6 and 4)
497 (7 divides both 49 and 7)
990 (splitting into 99 and 0 is invalid; but 9 divides both 9 and 90)
2233 (11 divides both 22 and 33)
9156 (3 divides both 9 and 156; or, 7 divides both 91 and 56)
11791 (13 divides both 117 and 91)
91015 (5 divides both 910 and 15)
1912496621 (23 divides both 1912496 and 621; some splittings are multiples of 7 as well)
9372679892 (2473 divides both 937267 and 9892; some splittings are multiples of 2 as well)
মিথ্যা মানগুলি প্রাপ্ত কিছু ইনপুটগুলি হ'ল:
52
61
130 (note that 13 and 0 is not a valid splitting)
691
899
2397
9029
26315
77300 (neither 7730 and 0 nor 773 and 00 are valid splittings)
2242593803
¹ হ্যাঁ আমি সত্যিই এটি করি