অতিরিক্ত সংখ্যার সংখ্যা


18

প্রাথমিক গুণক সহ ধনাত্মক পূর্ণসংখ্যার জন্য যেখানে প্রাইমগুলি থাকে এবং ধনাত্মক পূর্ণসংখ্যার জন্য আমরা দুটি ফাংশন সংজ্ঞায়িত করতে পারি:nn = p1^e1 * p2^e2 * ... pk^ekp1,...,pke1,...,ek

  • Ω(n) = e1+e2+...+ekপ্রধান বিভাজকের সংখ্যা (বহুগুণে গণনা করা) ( A001222 )
    • ω(n) = kস্বতন্ত্র প্রধান বিভাজকের সংখ্যা। ( A001221 )

এই দুটি ফাংশন দিয়ে আমরা অতিরিক্ত e(n) = Ω(n) - ω(n) ( A046660 ) সংজ্ঞায়িত করি । এটি একটি সংখ্যা স্কোয়ারফ্রি হওয়ার কতটা কাছাকাছি তার পরিমাপ হিসাবে বিবেচনা করা যেতে পারে।

চ্যালেঞ্জ

প্রদত্ত ইতিবাচক পূর্ণসংখ্যার nফেরতের জন্য e(n)

উদাহরণ

জন্য n = 12 = 2^2 * 3আমরা আছে Ω(12) = 2+1এবং ω(12) = 2এবং সেইজন্য e(12) = Ω(12) - ω(12) = 1। যে কোনও nস্কোয়ারফ্রি নম্বরের জন্য আমরা অবিচ্ছিন্নভাবে রয়েছি e(n) = 0। প্রথম কয়েকটি শর্ত

1       0
2       0
3       0
4       1
5       0
6       0
7       0
8       2
9       1
10      0
11      0
12      1
13      0
14      0
15      0

ওইআইএস উইকিতে আরও কিছু বিশদ।


1
সম্ভবত সেই ^শক্তিটি স্পষ্ট করুন
লুইস মেন্ডো

5
এটি আমার মতে প্রয়োজনীয় নয়। এই প্রতীকটি এখানে এবং সমস্ত ইন্টারনেটের পাশাপাশি অনেক ক্যালকুলেটর এবং বিভিন্ন প্রোগ্রামিং ভাষায় ব্যবহৃত হয়।
flawr

উত্তর:


7

এমএটিএল , 7 5 বাইট

Yfd~s

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা

Yf    % Implicit input. Obtain prime factors, sorted and with repetitions
d     % Consecutive differences
~     % Logical negate: zeros become 1, nonzeros become 0
s     % Sum. Implicit display

factorএমএটিএল কীভাবে কাজ করে, আমি সত্যিই দুর্দান্ত =) আমি অবগত ছিলাম না
flawr

@ ফ্লোয়ার আপনার অর্থ YF( কোডের 7-বাইট সংস্করণে) বা Yf(5-বাইট)? পরেরটি ম্যাটল্যাবে যেমন রয়েছে
লুইস মেন্ডো



6

গণিত, 23 বাইট

PrimeOmega@#-PrimeNu@#&

খুবই বিরক্তিকর. FactorIntegerইতিমধ্যে 13 বাইট নিয়েছে, এবং বাকি 10 টির সাথে অনেক কিছু করা যায় তা আমি দেখতে পাচ্ছি না।


4

জেলি , 5 বাইট

ÆfI¬S

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

সমস্ত টেস্টকেস যাচাই করুন।

পোর্ট অফ MATL মধ্যে Luis Mendo এর উত্তর

ÆfI¬S

Æf     Implicit input. Obtain prime factors, sorted and with repetitions
  I    Consecutive differences
   ¬   Logical negate: zeros become 1, nonzeros become 0
    S  Sum. Implicit display

পূর্ববর্তী পদ্ধতির জন্য, ÆF’SṪআমি মনে করি কাজ করেছি
Sp3000

@ এসপি 3000 আপনার পোস্ট করা উচিত
লিকি নুন

@ লিক্যনুন আমি নিজে এটি বন্দর দেওয়ার চেষ্টা করছিলাম, তবে সংজ্ঞা ¬আমাকে বিভ্রান্ত করেছে। আমি এটি ভেক্টরাইজড জানতাম না
লুইস মেন্ডো

@ লুইস মেন্ডো সত্যিই জেলি ডক্স অগোছালো।
লিকি নুন


3

জে, 11 10 বাইট

সংরক্ষণ 1 বাইট ধন্যবাদ ইউনুস

1#.1-~:@q:

1
1#.1-~:@q:10 বাইট জন্য। ~:বিটিডব্লু ব্যবহার করে দুর্দান্ত ধারণা ।
জোনা



2

পাইথন 2, 57 56 বাইট

f=lambda n,k=2:n/k and[f(n,k+1),(n/k%k<1)+f(n/k)][n%k<1]

1 জন বাইট বন্ধ করে গল্ফ করার জন্য @ জোনাথন অ্যালানকে ধন্যবাদ!

আইডিয়নে এটি পরীক্ষা করুন ।


আহ ভাল - আপনি ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারেনn/k%k<1
জোনাথন অ্যালান

ডান, এন ইতিমধ্যে K দ্বারা বিভাজ্য যে পয়েন্টে। ধন্যবাদ!
ডেনিস

2

হাস্কেল, 65 বাইট

(c%x)n|x>n=c|mod n x>0=c%(x+1)$n|y<-div n x=(c+0^mod y x)%x$y
0%2

যদি এটি একটি ফাংশন হয়: ইনপুট ভেরিয়েবল কে? আউটপুট কে? আপনাকে ধন্যবাদ ...
রোজলুপি

(%) 3 টি ইনপুট ভেরিয়েবল গ্রহণ করে: একটি সঞ্চালক (সি), একটি পূর্ণসংখ্যা (x) এবং একটি পূর্ণসংখ্যা (এন)। সিটি 0 এবং x 2 তে সেট করা হলে এটি (এন) এর অতিরিক্ত প্রদান করে So সুতরাং (0% 2) একটি আংশিক ফাংশন যা n নেয় এবং তার অতিরিক্ত ফেরত দেয়
ড্যামিয়েন

2

05 এ বি 1 ই , 4 বাইট

Ò¥_O

@ লুইস মেন্ডো'র এমএটিএল উত্তরের পোর্ট ।

এটি অনলাইনে চেষ্টা করুন বা প্রথম 15 টি পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

Ò       # Get all prime factors with duplicates from the (implicit) input
        # (automatically sorted from lowest to highest)
 ¥      # Get all deltas
  _     # Check if it's equal to 0 (0 becomes 1; everything else becomes 0)
   O    # Take the sum (and output implicitly)

1

পাইথন 2, 100 99 98 96 বাইট

n=input()
i=2
f=[]
while i<n:
 if n%i:i+=1
 else:n/=i;f+=i,
if-~n:f+=n,
print len(f)-len(set(f))

বেশিরভাগ কোডটি এই এসও উত্তরের গল্ফযুক্ত সংস্করণ দ্বারা নেওয়া হয় , যা ইনপুটটির মূল কারণগুলি সঞ্চয় করে f। তারপরে আমরা অতিরিক্ত কারণগুলি গণনার জন্য সেট ম্যানিপুলেশনটি সহজভাবে ব্যবহার করি।

1 3 বাইট সংরক্ষণের জন্য লিকি নুনকে ধন্যবাদ !




1

জাভাস্ক্রিপ্ট (ES6), 53 51 46 বাইট

e=(n,i=2)=>i<n?n%i?e(n,i+1):e(n/=i,i)+!(n%i):0

নীলকে ধন্যবাদ 5 বাইট সংরক্ষণ

উদাহরণ:

e=(n,i=2)=>i<n?n%i?e(n,i+1):e(n/=i,i)+!(n%i):0

// computing e(n) for n in [1, 30]
for(var n = 1, list = []; n <= 30; n++) {
  list.push(e(n));
}
console.log(list.join(','));


1
আপনি গণক 5 বাইট সংরক্ষণ করতে পারবেন rযাও recursively: f=(n,i=2)=>i<n?n%i?f(n,i+1):f(n/=i,i)+!(n%i):0
নীল

1

বাশ, 77 বাইট

IFS=$'\n '
f=(`factor $1`)
g=(`uniq<<<"${f[*]}"`)
echo $((${#f[*]}-${#g[*]}))

স্ট্যান্ডআউটে ইনপুট $1এবং আউটপুট সহ সম্পূর্ণ প্রোগ্রাম ।

আমরা IFSএকটি নতুন লাইন দিয়ে শুরু করতে প্রস্তুত করেছি , যাতে সম্প্রসারণটি "${f[*]}"নতুন লাইন দ্বারা পৃথক। ফিল্টারিংয়ের ফলাফলের সাথে আমরা গুণনীয়ক শব্দের সংখ্যার মধ্যে পার্থক্য মুদ্রণের জন্য আমরা গাণিতিক বিকল্প ব্যবহার করি uniq। সংখ্যাটি নিজেই উপসর্গ হিসাবে মুদ্রিত হয় factor, তবে এটি ফিল্টারিংয়ের পরেও উপস্থিত থাকে, সুতরাং বিয়োগফলের মধ্যে পড়ে।


0

পাইথন, (সিম্পি সহ) 66 বাইট

import sympy;lambda n:sum(x-1for x in sympy.factorint(n).values())

sympy.factorintকী হিসাবে গুণক এবং তাদের গুণাগুণকে মান হিসাবে একটি অভিধান প্রদান করে, তাই মানগুলির যোগফল হয় এবং মানগুলির Ω(n)সংখ্যা হয় ω(n), তাই হ্রাস হওয়া মানগুলির যোগফলটি আমরা চাই।



0

সি, 158

#define G(a,b) if(a)goto b
#define R return
f(n,i,j,o,w){if(!n)R 0;o=w=i=j=0;a:i+=2;b:if(n%i==0){++j;G(n/=i,b);}o+=!!j;w+=j;i+=(i==2);j=0;G(i*i<n,a);R w-o;}

শুরুতে গোটো ইন্সট্রাকশন রয়েছে ... এটি আপনার চেয়ে লম্বা হলেও এটি বেশি পঠনযোগ্য এবং সঠিক [যদি আমি এটিকে খুব বড় না বিবেচনা করি ...] যে ভাষাতে ১০০০০০ লাইব্রেরির ফাংশন রয়েছে তার একটি ভাষার চেয়েও ক্ষুদ্র ভাষা যে কয়েকটি, 20 বা 30 লাইব্রেরির ফাংশনগুলি আরও ভাল করতে পারে [কারণ আমরা এই সমস্ত ফাংশনটি মনে করতে পারি না]

#define F for
#define P printf

main(i,r)
{F(i=0; i<100; ++i)
   r=f(i,0,0,0,0),P("[%u|%u]",i,r);
 R  0;
}

/*
 158
 [0|0][1|0][2|0][3|0][4|1][5|0][6|0][7|0][8|2]
 [9|0][10|0][11|0][12|1][13|0][14|0][15|0][16|3]
 [17|0][18|0][19|0][20|1][21|0][22|0][23|0][24|2][25|1][26|0][27|0] [28|1]
 [29|0][30|0][31|0][32|4][33|0][34|0][35|0][36|1]
 [37|0][38|0][39|0][40|2][41|0]
 */

0

জিএনইউ সেড + কোর্টিলস, 55 বাইট

( -rপতাকার জন্য +1 সহ )

s/^/factor /e
s/ ([^ ]+)(( \1)*)/\2/g
s/[^ ]//g
y/ /1/

দশমিক ইনপুট, স্টিডিনে; স্ট্যান্ডআউটে আনরিটে আউটপুট

ব্যাখ্যা

#!/bin/sed -rf

# factor the number
s/^/factor /e
# remove first of each number repeated 0 or more times
s/ ([^ ]+)(( \1)*)/\2/g
# count just the spaces
s/[^ ]//g
y/ /1/

0

এপিএল (এনএআরএস) 35 টি চর, 70 বাইট

{⍵=1:0⋄k-⍨+/+/¨{w=⍵⊃v}¨⍳k←≢v←∪w←π⍵}

ফাংশন its তার যুক্তির মূল দিকটি নির্ধারণ করুন; এটি স্পষ্ট বলে মনে হচ্ছে এমন খুব কমই আছে, তবে আমার পক্ষে ন্যূনতমের চেয়ে আরও বেশি অপারেশন (ফ্যাক্টরিয়েশন থেকে) করেন ... গণনা চরিত্রের পরিসরটি গল্ফিং ভাষাগুলির বাইরে কারণ এটি খুব বেশি গণনা বলে মনে হয় তবে গল্ফিং ভাষাগুলির চেয়ে কম নয় ... পরীক্ষা:

  f←{⍵=1:0⋄k-⍨+/+/¨{w=⍵⊃v}¨⍳k←≢v←∪w←π⍵}
  f¨1..15
0 0 0 1 0 0 0 2 1 0 0 1 0 0 0 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.