ঘন সংখ্যা ক্রম


12

OEIS: A167171

একটি ঘন সংখ্যা হ'ল এমন একটি সংখ্যা যা নন-প্রাইম বিভাজক (যেমন 1 এবং নিজেকে বিভাজক হিসাবে অন্তর্ভুক্ত) হিসাবে ঠিক অনেকগুলি বিভাজনযুক্ত has সমানভাবে, এটি হয় প্রধান বা দুটি স্বতন্ত্র প্রাইমের পণ্য of প্রথম 100 ঘন সংখ্যা হ'ল:

2, 3, 5, 6, 7, 10, 11, 13, 14, 15, 17, 19, 21, 22, 23, 26, 29, 31, 33, 34, 35, 37, 38, 39, 41, 43, 46, 47, 51, 53, 55, 57, 58, 59, 61, 62, 65, 67, 69, 71, 73, 74, 77, 79, 82, 83, 85, 86, 87, 89, 91, 93, 94, 95, 97, 101, 103, 106, 107, 109, 111, 113, 115, 118, 119, 122, 123, 127, 129, 131, 133, 134, 137, 139, 141, 142, 143, 145, 146, 149, 151, 155, 157, 158, 159, 161, 163, 166, 167, 173, 177, 178, 179, 181, 183, 185, 187, 191, 193, 194

একটি nonnegative পূর্ণসংখ্যা n, আউটপুট দেওয়া dense(n)n0-ইনডেক্সড বা 1-ইনডেক্সড হতে পারে।

রেফারেন্স বাস্তবায়ন (সেজে)

import itertools

def dense_numbers():
    n = 1
    while True:
        prime_divisors = [x for x in divisors(n) if x.is_prime()]
        non_prime_divisors = [x for x in divisors(n) if not x.is_prime()]
        if len(prime_divisors) == len(non_prime_divisors):
            yield n
        n += 1

N = 20

print itertools.islice(dense_numbers(), N, N+1).next()

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


অনেকগুলি মৌলিক সংখ্যা ক্রম ... আমি জানি না যে
বিটা ডেক

2
@ βετѧΛєҫαγ এছাড়াও সেক্সি প্রাইমস (͡ ° ͜ʖ ͡ °) নামে প্রাইম রয়েছে
আদনান

@ আদনান ওহ মাই; ডি
বেটা

এর সর্বোচ্চ মূল্য কত n?
আর কাপ,

@ আর কেপ আপনার পছন্দমতো ভাষা যেতে পারে।
মেগো

উত্তর:


3

জেলি , 9 বাইট

ÆE²Sḍ2µ#Ṫ

STDIN থেকে পড়ে এবং 1-ভিত্তিক সূচক ব্যবহার করে। এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

ÆE²Sḍ2µ#Ṫ  Main link. No arguments. Implicit argument: 0

      µ#   Read an integer n from STDIN and execute the chain to the left for
           k = 0, 1, 2, ... until n of them return a truthy value.
           Return the array of matches.
ÆE           Compute the exponents of k's prime factorization.
  ²          Square each exponent.
   S         Compute the sum of all squares.
    ḍ2       Test if 2 is divisible by the result (true iff  the sum is 1 or 2).
        Ṫ  Tail; extract the last (n-th) matching value of k.

2

আসলে , 12 বাইট

ডেনিসকে তার অ্যালগরিদমের জন্য সমস্ত ক্রেডিট ।

`w♂N;*2%Y`╓N

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

`w♂N;*2%Y`╓N

`        `     define a function
 w             prime factorization in exponent form:
               18 = (2^1)*(3^2) becomes [[2,1],[3,2]]
  ♂N           get the last element (exponent) of each sublist
    ;*         dot-product with self; equivalent to squaring
               each item and then taking the sum
      2%Y      test divisibility by 2
          ╓    first (input) solutions to the above function
           N   get the last element.


1

ব্র্যাচল্যাগ , 17 বাইট

:1yt.
1<.=$p#dl<3

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

পূর্বাভাস 0 (প্রধান ভবিষ্যদ্বাণী)

:1yt.
:1y     Find the first (input) solutions of predicate 1
   t    Last element
    .   Unify with output

ভবিষ্যদ্বাণী 1 (সহায়ক ভবিষ্যদ্বাণী)

1<.=$p#dl<3
1<.            1 < output
  .=           assign a value to output
  . $p#d       output's prime factorization contains no duplicate
        l      and the length
         <3    is less than three

0

আর, 93 বাইট

dense=function(n){a=b=0;for(i in which(!n%%1:n))if(which(!i%%2:i)+1==i)a=a+1 else b=b+1;a==b}

এটি একটি সতর্কতা নিক্ষেপ করার প্রবণতা আছে। এটি আসলে কোনও সমস্যা নয়। সতর্কতার অনুমতি দেওয়া আমার 5 বাইট সাশ্রয় করে।

Ungolfed

dense=function(n){
     a=b=0                                #Initializing
     factors = which(!n%%1:n)             #Finds all factors
     for(i in factors)                    #Loops through factors
         prime = which(!i%%2:i)+1==i      #Tests if current factor is prime. If it is -- the first term in this vector will be TRUE. Otherwise, it will be false.
           if (prime) a=a+1 else b=b+1    #If first term is true, add 1 to a. Else add one to b. 
      return(a==b)                        #Test equality of a and b.
}

আপনি +=2 টি বাইট সংরক্ষণ করতে অপারেটরটি ব্যবহার করতে পারবেন না ?
আর কাপ,

দুঃখিতভাবে, আর মত কোন দরকারী incrementation অপারেটার নেই +=বা a++। কখনও কখনও ছোট উপায় হতে পারে (বেশিরভাগ লুপ কাঠামোর সুবিধা গ্রহণ করা), তবে আমি এখানে একটি সম্পর্কে জানি না।
ব্যবহারকারী5957401

0

পাইথন, 79 বাইট

f=lambda n,k=2:n<1or-~f(n-(sum((k%i<1)+2*(k%i**2<1)for i in range(2,k))<3),k+1)

1-ভিত্তিক সূচক ব্যবহার করে। আইডিয়নে এটি পরীক্ষা করুন ।



0

অ্যাক্সিয়াম, ১০২ বাইট

f(n:PI):PI==(i:=1;repeat(i:=i+1;a:=divisors(i);2*#[x for x in a|prime?(x)]=#a=>(n=1=>break;n:=n-1));i)

ungolf এবং ফলাফল

-- 1 base Indexed: return the n_th number i that has 2*#divisorsPrimeOf(i)=#divisors(i)
ff(n:PI):PI==
     i:=1
     repeat
        i:=i+1
        a:=divisors(i)
        2*#[x for x in a|prime?(x)]=#a=>(n=1=>break;n:=n-1)
     i

(3) -> [f(i)  for i in 1..23]
   (3)  [2,3,5,6,7,10,11,13,14,15,17,19,21,22,23,26,29,31,33,34,35,37,38]
                                               Type: List PositiveInteger
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.