বাশ + কোর্টিলস, 169 158 149 বাইট
c()
{
test $1||echo a
for i in `seq ${#1}`
do factor ${1::$i}|grep -q ': \w*$'&&printf b%s\\n `c ${1:$i}`
done
}
c $1|sort|sed '/a/!d;s/..//;q'|wc -c
আমরা অরিয়াতে গণনা করি, b
প্রতিটি প্রধানের জন্য একটির সাথে একটি লাইন আউটপুট এবং a
লাইনের শেষে টার্মিনেটিং (যাতে printf
এটির সাথে কাজ করার একটি টোকেন থাকে)।
প্রাথমিকতা পরীক্ষা factor $n | grep -q ': \w*$'
, যা সংখ্যার ঠিক একটি প্রধান উপাদান আছে কিনা তা নির্ধারণ করে।
আমরা পুনরাবৃত্তভাবে ইনপুট বিভক্ত করি; যদি বাম অর্ধেক প্রাইম হয় তবে আমরা প্রতিটি মানটিতে একটি যোগ করে ডান অর্ধের ফলাফলগুলি ফিল্টার করি। a
শূন্য-দৈর্ঘ্যের ইনপুটটির জন্য প্রত্যাবর্তন পুনরাবৃত্তি সমাপ্ত করে।
পরিশেষে, আমরা সমস্ত ফলাফল নিই এবং সংক্ষিপ্ততম অনুসন্ধানের জন্য বাছাই করি ( a
সাফল্যের ইঙ্গিত দেওয়ার মতো কোনও বিষয় উপেক্ষা করে); আমাদের দুটি অবশ্যই মুছে ফেলতে হবে ( a
sertedোকানো এবং নিউলাইনের জন্য), তারপরে ফলাফল দেওয়ার জন্য অক্ষর গণনা করুন।
টেস্ট
$ for i in 252 235 92 31149 111; do echo "$i:"$'\t'"$(./77623.sh $i)"; done
252: 3
235: 2
92: 0
31149: 2
111: 0
আমি 111
পরীক্ষাগুলি যুক্ত করেছি 1
তা সঠিকভাবে অ-প্রধানমন্ত্রী হিসাবে বিবেচিত হয়।