প্রাইমস 'এন' সংখ্যাগুলি


11

এর কোন ব্যবহারিক উদ্দেশ্য নেই তবে এটি গল্ফ মজাদার হতে পারে।

চ্যালেঞ্জ

প্রদত্ত একটি সংখ্যা এন ,

  1. প্রতিটি অঙ্ক পরিমাণ গণনা এন এবং প্রতিটি গণনা করতে 1 যোগ
  2. এন এর প্রধান গুণনীয়ক গ্রহণ করুন
  3. ডুপ্লিকেট প্রাইমগুলিকে অন্তর্ভুক্ত না করে প্রতিটি মৌলিক সংখ্যা এন এর প্রাথমিক গুণনীয়ক হিসাবে গণনা করুন
  4. পদক্ষেপের 1 এবং 3 থেকে তালিকার সংশ্লিষ্ট উপাদানগুলিকে একসাথে গুণিয়ে একটি নতুন তালিকা তৈরি করুন
  5. সেই তালিকার যোগফলটি ফিরিয়ে দিন

উদাহরণস্বরূপ, 121 এর দুটি 1ও একটি রয়েছে 2, সুতরাং আপনি পদক্ষেপ 1 থেকে নিম্নলিখিত তালিকাটি পাবেন:

0 1 2 3 4 5 6 7 8 9
1 3 2 1 1 1 1 1 1 1

121 এর মূল ফ্যাক্টরিয়েশনটি 11 2 , যা ধাপ 3 এর জন্য নিম্নলিখিত তালিকা দেয়:

0 1 2 3 4 5 6 7 8 9
0 2 0 0 0 0 0 0 0 0

আমরা কীভাবে খুনিটিকে গণনা করিনি তা নোট করুন। এগুলি পেতে একসাথে গুন:

0 1 2 3 4 5 6 7 8 9
0 6 0 0 0 0 0 0 0 0

এবং এই তালিকার যোগফল is

পরীক্ষার মামলা

1 -> 0
2 -> 2
3 -> 2
4 -> 1
5 -> 2
10 -> 2
13 -> 4
121 -> 6

মন্তব্য

  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • ইনপুট এবং আউটপুট যে কোনও যুক্তিসঙ্গত বিন্যাসে হতে পারে।
  • সংখ্যায় উপস্থিত না হওয়া সংখ্যার জন্য তালিকায় আপনার একটি (বা ধাপ 3 এর জন্য জিরো) রেখে দেওয়া উচিত।
  • এটি , তাই বাইটগুলির মধ্যে সংক্ষিপ্ততম সমাধানটি জিতে।

667 (= 23 * 29) 3 য় ধাপে 2 2, একটি 3 এবং একটি 9 এর জন্য তৈরি করে?
জোনাথন অ্যালান

@ জোনাথান অ্যালান হ্যাঁ
রামেন শেফ

2
@ wizzwizz4 232792560-> [2,1,4,2,1,2,2,2,1,2](পদক্ষেপ 1); 2*2*2*2*3*3*5*7*14*17*19(ধাপ ২); সুতরাং [0,5,1,2,0,1,0,2,0,1](পদক্ষেপ 3); তারপরে [0,5,4,4,0,2,0,4,0,2](পদক্ষেপ 4); এবং তাই আউটপুট করা উচিত 21
জোনাথন অ্যালান

@ জনাথান অ্যালান : - /
wizzwizz4

উত্তর:


2

জেলি , 16 বাইট

ṾċЀØD
ÆfQÇ×Ç‘$S

এটি অনলাইন চেষ্টা করুন!

অন্যান্য জেলি সমাধানের মতোই স্বাধীনভাবে বিকাশ লাভ করেছে ।

ব্যাখ্যা

আমি 242উদাহরণ ইনপুট হিসাবে ব্যবহার করতে চাই ।

ṾċЀØD     Helper link
Ṿ          Uneval. In this case, turns it's argument into a string. 
           242Ṿ → ['2','4','2']. [2,11] → ['2', ',', '1', '1']. The ',' won't end up doing anything.
    ØD     Digits: ['0','1',...,'9']
 ċЀ       Count the occurrence of €ach digit in the result of Ṿ

ÆfQÇ×Ç‘$S  Main link. Argument 242
Æf         Prime factors that multiply to 242 → [2,11,11]
  Q        Unique elements → [2,11]
   Ç       Apply helper link to this list → [0,2,1,0,0,0,0,0,0,0]
     Ç‘$   Apply helper link to 242 then add 1 to each element → [1,1,3,1,2,1,1,1,1,1]
    ×      Multiply the two lists element-wise → [0,2,3,0,0,0,0,0,0,0]
        S  Sum of the product → 5

4

জেলি ,  18  17 বাইট

-1 বায়ার্ড কেয়ারড কোইনারিংহিংএইচ.পি.উইজকে ধন্যবাদ (দুটি ভেক্টরকে জোড়া দেওয়া এড়ানো)

DF‘ċЀ⁵
ÆfQÇæ.Ç‘$

একটি মোনাডিক লিঙ্কটি ইতিবাচক পূর্ণসংখ্যার গ্রহণ করে এবং অ-নেতিবাচক পূর্ণসংখ্যাকে ফেরত দেয়।

এটি অনলাইন চেষ্টা করুন!

কিভাবে?

DF‘ċЀ⁵ - Link 1, digitalCount: number(s)    e.g. [13,17]
D       - to decimal list (vectorises)            [[1,3],[1,7]]
 F      - flatten                                 [1,3,1,7]
  ‘     - increment (vectorises)                  [2,4,2,8]
      ⁵ - literal ten                             10
    Ѐ  - map across              (implicit range [1,2,3,4,5,6,7,8,9,10])
   ċ    - count                                   [0,2,0,1,0,0,0,1,0,0]

ÆfQÇæ.Ç‘$ - Main link: positive integer, n   e.g. 11999
        $ - last two links as a monad:
      Ç   -   call the last link (1) as a monad   [0,2,0,0,0,0,0,0,0,3]
       ‘  -   increment (vectorises)              [1,3,1,1,1,1,1,1,1,4]
Æf        - prime factorisation                   [13,13,71]
  Q       - deduplicate                           [13,17]
   Ç      - call the last link (1) as a monad     [0,2,0,1,0,0,0,1,0,0]
    æ.    - dot product                           8


বা বিন্দু পণ্য ব্যবহার করুন
এইচপিউইজ

2

এপিএল (ডায়ালগ) , 43 41 বাইট

CY'dfns'
+/×/+/¨⎕D∘.=⍕¨(⎕D,r)(∪3pco r←⎕)

এটি অনলাইন চেষ্টা করুন!

কিভাবে?

r←⎕ - ইনপুট r

3pco - মৌলিক উত্পাদক

- অনন্য

⎕D,r- rসঙ্গে preend0-9

⍕¨ - উপাদানগুলি এবং চাপিত পরিসীমা বিন্যাস করুন

⎕D∘.= - স্ট্রিংয়ের প্রতিটি উপাদানগুলির সাথে কার্টেসিয়ান তুলনা 0123456789

+/¨ - গঠিত দুটি টেবিলের প্রতিটি সারি যোগফল

×/ - দুটি ভেক্টরকে বামে গুন করুন

+/ - গঠিত শেষ ভেক্টর যোগফল



1

পাইথন 2 , 136 127 বাইট

lambda a:sum(''.join(u(a)).count(`i`)*-~`a`.count(`i`)for i in range(10))
u=lambda a:[`j`for j in range(2,a)if a%j<1>len(u(j))]

এটি অনলাইন চেষ্টা করুন!

ক্রেডিট



@ মিঃ এক্সকোডার আপডেট হয়েছে, আমাকে -~সর্বদা তার ব্যবহার সম্পর্কে একটু বিভ্রান্ত করে দেখানোর জন্য ধন্যবাদ । এবং আমি <1জিনিস মনে রাখা শুরু করা উচিত । সাহায্যের জন্য ধন্যবাদ.
নিল

আপনি মাধ্যমে দেখে নিতে পারেন এই জন্য -~এবং সম্পর্কিত স্টাফ।
মিঃ এক্সকডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.