N এর নীচে সমস্ত সংখ্যার যোগফল নির্ধারণ করুন যা কয়েকটি সংখ্যার সংখ্যার সংখ্যার একাধিক


31

প্রকল্প ইউলারের প্রথম প্রশ্নের প্রায় সমান:

যদি আমরা 10 এর নীচে সমস্ত প্রাকৃতিক সংখ্যাগুলি 3 বা 5 এর গুণক হিসাবে তালিকাভুক্ত করি তবে আমরা 3, 5, 6 এবং 9 পাই these এই গুণকের যোগফল 23 হয়।

1000 এর নীচে 3 বা 5 এর সমস্ত গুণকের যোগফলটি সন্ধান করুন।

চ্যালেঞ্জ:

একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া Nএবং অন্তত একটি ধনাত্মক পূর্ণসংখ্যা একটি সেট A, আউটপুট সব ধনাত্মক পূর্ণসংখ্যা এর সমষ্টি কম Nযে অন্তত এক সদস্যের গুণিতক A

উদাহরণস্বরূপ, প্রজেক্ট অলারের ক্ষেত্রে, ইনপুটটি হবে:

1000
3
5

পরীক্ষার কেস:

Input : 50, [2]
Output: 600

Input : 10, [3, 5]
Output: 23

Input : 28, [4, 2]
Output: 182

Input : 19, [7, 5]
Output: 51

Input : 50, [2, 3, 5]
Output: 857

4
1) আমরা কি এমন সংখ্যা গণনা করব যা দু'বারের দ্বিগুণ? 2) আমরা কি আরও দুটি নম্বর পেতে পারি? বা কোন পরিমাণ বলতে এক বা 3?
গম উইজার্ড

3
আপনি কিছু পরীক্ষার মামলা দিতে পারেন? স্পষ্টতই PE এর উত্তর পোস্ট করবেন না, তবে অন্যান্য উদাহরণগুলির কী হবে?
আর

1
@ ওয়েট উইজার্ড: "বা" শব্দটি বোঝায় যে প্রতিটি সংখ্যা কেবলমাত্র একবারে গণনা করা হয়। আমি সম্মত হই যে প্রশ্নটি কতটা "সংখ্যাগুণের জন্য বহুগুণ পরীক্ষা করার জন্য" যুক্তিগুলি সমর্থন করা উচিত তা পরিষ্কার করা দরকার though ঠিক দুটো? একটি অথবা আরও বেশি? শূন্য নাকি আরও কিছু?
স্মৃতি

1
আমরা কি " 10 এর সমান বা নীচে সংখ্যা " নিতে পারি , বা 10 এর পরিবর্তে 9 টি ইনপুট হিসাবে নিতে পারি?
স্টিভি গ্রিফিন

"এবং কমপক্ষে একটি ইতিবাচক পূর্ণসংখ্যার একটি সেট" সেটটি কত বড় হতে পারে?
betseg

উত্তর:


13

জেলি , 6 বাইট

ḍþṖḅTS

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

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

ḍþṖḅTS  Main link. Left argument: D (array). Right argument: n (integer)

ḍþ       Divisible table; test each k in [1, ..., n] for divisibility by all
        integers d in D.
  Ṗ     Pop; discard the last Boolean array, which corresponds to n.
   ḅ    Unbase; convert the Boolean arrays of base n to integer. This yields a 
        non-zero value (truthy) and and only if the corresponding integer k is 
        divisible by at least one d in D.
    T   Truth; yield the array of all indices of truthy elements.
     S  Compute their sum.

3
অবশ্যই @ ডেনিসকে এমন কিছু নিয়ে আসতে হবে যা আপনাকে পিপিসিগিতে কী করছেন তা অবাক করে দেবে
গ্রাজডিয়ানু অ্যালেক্স।

8

পাইথন, 59 55 বাইট

lambda n,l:sum(v*any(v%m<1for m in l)for v in range(n))

repl.it

একটি পূর্ণসংখ্যা nএবং পূর্ণসংখ্যার একটি তালিকা গ্রহণ বেনাম ফাংশন l। কিন্তু সহ না পর্যন্ত স্বাভাবিক সংখ্যার (প্লাস শূন্য) একটি সীমার ঘোরে nএবং অঙ্কের ( sum(...)) আর শূন্য বিভাজন (পরে একটি বাকি আছে v%m<1) জন্য anyপূর্ণসংখ্যার mতালিকায় l। 3 বাইট সংরক্ষণের জন্য শর্তযুক্তের চেয়ে গুণগুলি ব্যবহার করে।


8

অক্টাভা, 38 36 33 বাইট

@(x,y)(1:--x)*~all(mod(1:x,y),1)'

যেমন ইনপুট নিন: f(10, [3;5])। যদি ইনপুট f(9,[3;5])একই পরীক্ষার ক্ষেত্রে হতে পারে তবে এটি 2 বাইট কম হবে ।

সমস্ত পরীক্ষার কেসগুলি এখানে যাচাই করুন।


ব্যাখ্যা:

@(x,y)        % Anonymous function that takes two inputs, x and y
              % x is a scalar and y is a vertical vector with the set of numbers
(1:--x)*      % Pre-decrement x and create a vector 1 2 ... x-1    

অক্টাভা প্রাক হ্রাস করতে পারে, তাই 1:--xপরিবর্তে ব্যবহার করে1:x-1 (দুই বার) এর দুটি বাইট সংরক্ষণ করে।

mod(a,b)1 2 0 1 2 0 1 2 0জন্য দেয় mod(1:9,3)। যদি দ্বিতীয় আর্গুমেন্টটি একটি উল্লম্ব ভেক্টর হয় তবে এটি প্রথম ইনপুটটিকে উল্লম্বভাবে প্রতিলিপি করবে এবং দ্বিতীয় ইনপুট আর্গুমেন্টের প্রতিটি মানের জন্য মডুলাস গ্রহণ করবে। সুতরাং, ইনপুট জন্য mod(1:9, [3;5])এটি দেয়:

1 2 0 1 2 0 1 2 0
1 2 3 4 0 1 2 3 4

এটি গ্রহণ ~all(_,1)করা trueকলামগুলির জন্য দেয় যেখানে কমপক্ষে একটি মান শূন্য এবং falseযেখানে সমস্ত মান শূন্য হয়:

~all(mod(1:x,y),1)
0 0 1 0 1 1 0 0 1

,1ক্ষেত্রে প্রয়োজন হয় একমাত্র সংখ্যা আছেy । অন্যথায় এটি সংখ্যা-সংখ্যার পরিবর্তে পুরো ভেক্টরটিতে কাজ করবে।

এটি একটি উল্লম্ব ম্যাট্রিক্সে স্থানান্তর করা এবং ম্যাট্রিক্স গুণন ব্যবহার করা, সুস্পষ্ট সংক্ষিপ্ততার প্রয়োজন ছাড়াই আমাদের সঠিক উত্তর দেবে:


ওহ এটি নিষ্ঠুর: x এবং x – 1 এর মধ্যে পার্থক্যের কারণে আমাকে 2 বাইট যোগ করতে হয়েছিল, তবে আপনাকে 4 বাইট যোগ করতে হয়েছিল, এবং আমি এখন 1 বাইট দ্বারা এগিয়ে আছি> :)
গ্রেগ মার্টিন

6

জাভাস্ক্রিপ্ট (ES6), 40 39 36 বাইট

ইনপুট: কারিঙ সিনট্যাক্স সহ nপূর্ণসংখ্যার পূর্ণসংখ্যা এবং বিন্যাস sa(n)(a)

n=>F=a=>n--&&!a.every(v=>n%v)*n+F(a)

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


আমি একই দৈর্ঘ্যের জন্য একটি কিছুটা ভিন্ন সূত্র ছিল: f=(n,a)=>n--&&a.some(v=>n%v<1)*n+f(n,a)। সেরা আমি অনার্সিভিউ করতে পারি 61১ বাইট।
নীল

@ নীল আপনার মন্তব্য আমাকে আরও একটি গঠনের সন্ধান করতে উত্সাহিত করেছিল। মজার বিষয় হল, কারিঙ সিনট্যাক্স 3 টি বাইট সংরক্ষণ করে।
আর্নৌল্ড

5

1
আমি এই অধিকারটি পড়ছি কিনা তা খতিয়ে দেখছি (দস্তাবেজগুলি পরীক্ষা না করে)। আপনি হ্রাস করছেন, একটি ভেক্টর তৈরি করছেন 1 2 ...। আপনি এটির সদৃশ এবং অন্য ইনপুট মডিউল গ্রহণ। আপনি এটিকে অবহেলা করুন এবং ভেক্টরের সাথে গুণ করুন 1 2 .., সদৃশগুলি থেকে মুক্তি পেতে এবং অবশেষে এটির সংক্ষিপ্তসার জন্য অনন্য ব্যবহার করুন ...
স্টিভি গ্রিফিন

একদম ঠিক! আমি মোবাইলে থাকি তাই আমি কোনও ব্যাখ্যা অন্তর্ভুক্ত করি না। এখন এটি প্রয়োজনীয় নয় :-)
লুইস মেন্ডো


4

পাইথন, 67 বাইট

a,b,c=input()
x=y=0
exec("if x%c<1or 1>x%b:y+=x\nx+=1\n"*a)
print y

এটি লেখার পরে আমি লক্ষ্য করেছি যে আমার কোডটি বিদ্যমান পাইথন উত্তরের মতো ছিল, তবে আমি এটি স্বাধীনভাবে এনেছি এবং যাইহোক এটি পোস্ট করছি।


এক্সিকিউটে আপনার অর্ধিকোলনের দরকার নেই, যেহেতু আপনার পরে এটির পরে একটি লাইন ব্রেক রয়েছে। আমি জানতাম আমার উত্তর আউটগল্ফড হতে পারে!
থিও

অনুমানটি বলে "কমপক্ষে একটি ইতিবাচক পূর্ণসংখ্যার একটি সেট"; এটি সেটটি কেবল দুটি পূর্ণসংখ্যার ক্ষেত্রেই পরিচালনা করবে বলে মনে হচ্ছে। এছাড়াও x=y=0একটি পৃথক লাইনে থাকার চারটি বাইট সংরক্ষণ করতে পারে।
জোনাথন অ্যালান

@ জোনাথন অ্যালান দুর্দান্ত, অনেক ধন্যবাদ!
আর

4

গণিত, 37 27 বাইট

মার্টিন ইন্ডারকে একটি বুদ্ধিমান পর্যবেক্ষণের জন্য ধন্যবাদ যা বড় বাইট সঞ্চয়গুলির দিকে পরিচালিত করে!

Tr[Union@@Range[#,#2-1,#]]&

নামহীন ফাংশন দুটি যুক্তি, #পূর্ণসংখ্যার তালিকা (পছন্দসই বিভাজক A) এবং একটি পূর্ণসংখ্যা #2(উপরের সীমা N) এবং একটি পূর্ণসংখ্যা ফেরত। তালিকার Range[#,#2-1,#]প্রতিটি উপাদানের জন্য দেয়, এর সমস্ত গুণকd#d কম বা সমান #-1(এর চেয়ে কম #) এর সমস্ত গুণাবলী ; এই তালিকাগুলির ইউনিয়নটি তখন গণনা করা হয় এবং তার সাথে সংমিশ্রণ করা হয়Tr

পূর্ববর্তী সংস্করণ:

Tr[x=#;Union@@(Range[#,x-1,#]&/@#2)]&

1
Rangeতালিকাভুক্ত: Tr[Union@@Range[#2,#-1,#2]]&(এবং তারপরে ইনপুটগুলির ক্রমটি অদল করে আরেকটি বাইট সংরক্ষণ করুন)
মার্টিন এন্ডার

4

পার্ল 6 , 25 বাইট

{sum grep *%%@_.any,^$^a}

একটি ল্যাম্বদা যা আর্গুমেন্ট হিসাবে ইনপুট সংখ্যাগুলি নেয়। (এন এর জন্য একটি যুক্তি, এবং এ এর ​​পক্ষে একটি স্বেচ্ছাসেবী যুক্তি)।

( এটি অনলাইনে চেষ্টা করে দেখুন) )

ব্যাখ্যা:

  • { ... }: একটি ল্যাম্বদা।
  • $^a: লাম্বদার প্রথম যুক্তি।
  • @_: ল্যাম্বদার বাকী বাকী যুক্তি ("ভ্যারানডিক প্যারামিটার")।
  • ^$^aথেকে রেঞ্জ 0থেকে$^a - 1
  • * %% @_.any: আরেকটি ল্যাম্বডা, যা তার তালিকার একটি - জংশনের বিরুদ্ধে *বিভাজক বাই অপারেটর ব্যবহার করে তার যুক্তি পরীক্ষা করে%%any@_
  • grep PREDICATE, RANGE: সংখ্যার পরিসীমা পুনরাবৃত্তি করে এবং পূর্বাভাসটি সত্য বলে একটি দেয়।

আমি মনে করি ^একটি স্থানধারক পরামিতি ঘোষণার জন্য যুক্ত করা মোটামুটি সুস্পষ্ট। বিশেষত যেহেতু আপনি পরে এটি ব্লক হিসাবে ব্যবহার করতে পারেন $a। আমি মনে করি কেবলমাত্র $_ @_ %_ selfকখনও স্পষ্টভাবে ঘোষিত হিসাবে বিবেচিত হতে পারে। আমি মনে করি আমি যে লাইন পড়া "হবে একটি প্লেসহোল্ডার হিসাবে প্রথম প্যারামিটার ঘোষণা "
ব্র্যাড গিলবার্ট b2gills

@ ব্র্যাডগিলবার্টব 2 গিলস: আমি বোঝাতে চাইছিলাম যে এটি ল্যাম্বদার স্বাক্ষরের অংশ হিসাবে স্পষ্টতই ল্যাম্বদার স্বাক্ষরের অংশ হয়ে যায়, যদিও কোডটি ল্যাম্বদার দেহের আগে স্বাক্ষর প্রবর্তন করে না। @_, এবং %_ক্রিয়াকলাপগুলির ক্ষেত্রে, সে ক্ষেত্রে আলাদা নয়: তারাও কেবল শরীরে উপস্থিত থাকলে স্বাক্ষরের অংশ হয়ে যায়। শুধু $_ (এবং selfএবং %_পদ্ধতিতে) ডিফল্টভাবে একটি স্বাক্ষর অংশ হয়ে পারবেন না।
স্মলস

PS: কোডটি বোঝার জন্য এটি প্রয়োজনীয় না হওয়ায় আমি এখন "স্পষ্টভাবে ঘোষণা করা" বাক্যাংশটি সরিয়েছি।
স্মিল

3

আর, 67 বাইট

a=scan();x=c();for(i in a[-1])x=c(x,seq(i,a[1]-1,i));sum(unique(x))

নিম্নলিখিত বিন্যাসে stdin করার জন্য একটি ভেক্টর লাগে: [N, a_1, a_2, ...]। যে কোনও সংখ্যার সমর্থন করে a। প্রত্যেকের জন্য a, ক্রম তৈরি করে aকরার N-1stepsize সঙ্গে a। তারপরে সেই ভেক্টরের সমস্ত অনন্য এন্ট্রিগুলির যোগফল নেয়।


3

Haskell,, 42 39 বাইট

a!b=sum[x|x<-[1..a-1],any((<1).mod x)b]

ব্যবহার:

Main> 50![2,3,5]
857

@ জগারবকে 3 বাইটের জন্য ধন্যবাদ


(x`mod`)হিসাবে একই mod x
জাগারব

@Zgarb উপস :)
Angs

3

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

FND²%P_*O

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

F         For N in [0, ..., input[0]-1]
 ND²%     Evaluate N%input[1]; yields an array of results
     P    Take the total product of the array. Yields 0 only if at least one of the value is 0, in other words if N is multiple of at least one of the specified values
      _   Boolean negation, yields 1 if the last value is 0 and yields 0 otherwise
       *  Multiply by N: yields N if the last value is 0 and yields 0 otherwise
        O Display the total sum

ফিল্টার ব্যবহার করে 8 বাইট বা 8 বাইট বিকল্প । (আপনি নিজের উত্তর পোস্ট করার সময় প্রথম 8-বাইটারটি সম্ভব ছিল না, যেহেতু à(সর্বাধিক) তালিকাটি এখন পপ করে, তবে আগে হয়নি))
কেভিন ক্রুইজসেন

3

অক্টাভা, 49 37 বাইট

@(A,N)sum(unique((z=(1:N)'.*A)(z<N)))

ফাংশন হিসাবে ডাকা হবে f([2 3 4],50)

ধরে নিন যে A=[2 3 4];আমাদের সংখ্যার যোগফল রয়েছে

sum(
2,4,6...,50-1 ,
3,6,9...,50-1,
4,8,12,...50-1)

আমরা গুণ করতে পারি [2 3 4] দ্বারা 1:50ম্যাট্রিক্স পেতে(1:N)'.*A

[2 4 6 ... 2*50
3 6 9 ... 3*50
4 8 12 ...4*50]

তারপরে ম্যাট্রিক্স থেকে 50 টির চেয়ে কম ছোট করে বের করুন: z(z<N)

যেহেতু ম্যাট্রিক্সে বারবার উপাদান রয়েছে আমরা অনন্য মানগুলি বের করি এবং সেগুলি যোগ করি।

পূর্ববর্তী উত্তর : (এন == 1 থাকলে এই সমাধানটি ব্যর্থ হবে)

@(A,N)sum((k=uint64(1:N-1))(any(k==(k./A').*A')))

ফাংশন হিসাবে বলা উচিত f(unit64([2 3 4]),uint64(50))


1
খুব সুন্দর! প্রায় অন্যান্য অষ্টক উত্তর হিসাবে বাছাই, কিন্তু সম্পূর্ণ ভিন্ন পদ্ধতির। এটি মোটেও আমার মন অতিক্রম করেনি! আইডিয়োনের একটি লিঙ্ক হলেও কিছু ব্যাখ্যা থাকলে উপকৃত হতে পারে তবে আপনার ইতিমধ্যে আমার ভোট রয়েছে :-)
স্টিভি গ্রিফিন


2

পাইথ, 10 বাইট

s{sm:0hQdt

ব্যাখ্যা

s{sm:0hQdtQ   Implicit input
    :0hQd     Get multiples of d below the bound
   m     tQ   ... for each d given
  s           Concatenate results
 {            Remove repeats
s             Take the sum

2

টি-এসকিউএল, 87 বাইট

এটি @i2048 বা তার চেয়ে কম মান হিসাবে কাজ করবে

USE master--needed for databases not using master as default
DECLARE @i INT=50
DECLARE @ table(a int)
INSERT @ values(2),(3),(5)

SELECT sum(distinct number)FROM spt_values,@ WHERE number%a=0and abs(number)<@i

চেষ্টা কর


2

এপিএল (ডায়ালগ ইউনিকোড) , 12 বাইট

+/⊢∘⍳∩∘∊×∘⍳¨

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

অজ্ঞাতনামা আমাকে এড়িয়ে 3 বাইট শেভ করতে সাহায্য করার জন্য @ অ্যাডমকে ধন্যবাদ জানাই ব্যবহার ⎕IO←0

কিভাবে:

+/⊢∘⍳∩∘∊×∘⍳¨  Tacit function. Left and right arguments will be called  and  respectively.

        ×∘⍳¨  Multiply  with each element of [0..⍵-1]
             Enlist (flattens the vector)
     ∩∘       Then, get the intersection of that vector with
  ⊢∘⍳         The vector [0..⍵-1].
+/            Then sum

2

পিপ , 43 41 39 35 বাইট

b^:sFc,a{f:0Fdb{f?0c%d?0(f:i+:c)}}i

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

ব্যাখ্যা:

Takes inputs like so:

    arg1 1000
    arg2 3 5

b^:s                      ;read rest of inputs as array
                          ;(s is " " and ^ is split into array on char)
F c ,a{                   ;for(c in range(0,a))
  f:0                     ;flag to prevent double counting 15,30,etc.
  F d b {                 ;forEach(d in b)
    f? 0 c%d? 0 (f:i+:c)  ;if flag {continue}elif c%d {f=i+=c}
                          ;      (i will always be truthy so why not)     
  }
}
i                         ;print sum

উপস! আমি খুব দ্রুত পড়ি
কেনেথ টেইলর

অনেক ভাল. দুর্দান্ত উত্তর!
mbomb007

1

পাইথন 2, 80 বাইট

এটি খুব দীর্ঘ। অবশ্যই সংক্ষিপ্ত করা যেতে পারে। 3 নম্বর পৃথক ইনপুট হিসাবে নেওয়া অবশ্যই স্কোরকে ব্যথা করছে।

i=input
x=i();y=i();z=i();s=c=0
exec("if c%z<1 or c%y<1:s+=c\nc+=1\n"*x)
print s

আপনি করতে x,y,z=input()এবং আকারে ইনপুট দিতে পারে (1000,3,5)
স্কাইলার

1

কমন লিস্প, 77

(lambda(n x)(loop for i below n when(some(lambda(u)(zerop(mod i u)))x)sum i))

Ungolfed

(lambda (limit seeds)
  (loop for i below limit
        when (some (lambda (u) (zerop (mod i u))) seeds)
          sum i))

1

পাওয়ারশেল , 57 বাইট

param($a,$b)(1..--$a|?{$i=$_;$b|?{!($i%$_)}})-join'+'|iex

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

Iterative সমাধান। একটি সংখ্যা $aহিসাবে এবং আক্ষরিক অ্যারে হিসাবে ইনপুট নেয় $b। অপারেটরটি ব্যবহার করে 1নীচের দিকে $a(মাধ্যমে --$a) লুপগুলিWhere-Object|?{...}নির্দিষ্ট নম্বর নির্বাচন করার জন্য একটি ধারা সহ একটি ।

অন্যটিতে $iইনপুট অ্যারে প্রেরণের আগে এই ধারাটি বর্তমান সংখ্যা হিসাবে সেট হয়ে গেছে , এখানে সেই সংখ্যাগুলি বেছে নিন যেখানে বর্তমান সংখ্যাটি কমপক্ষে একটি সংখ্যার দ্বারা ভাগ করে । যে উপাদানগুলির সমানভাবে ভাগ হয় সেগুলি পাইপলাইনে রেখে যায়।$b|?{...}$b$b

সুতরাং, যদি কমপক্ষে একটি উপাদান থেকে $bথাকে তবে পাইপলাইনে একটি উপাদান থাকে, সুতরাং বাইরেরটি Whereহয় $trueএবং বর্তমান সংখ্যাটি পাইপলাইনে রেখে যায়। অন্যথায়, $bপাইপলাইনে কোনও উপাদান ছাড়াই বাহ্যিক Whereহয় $false, সুতরাং বর্তমান নম্বরটি পাইপলাইনে স্থাপন করা হয় না।

এই সংখ্যাগুলি সমস্ত পেরেন্সে জড়ো হয়েছে, -join একত্রিত হয়, +চিহ্ন সহ একত্রিত হয় এবং পাইপযুক্ত হয় |iex(এর জন্য সংক্ষিপ্ত Invoke-Expressionএবং অনুরূপ eval)। সমষ্টি ফলাফল পাইপলাইনে রেখে গেছে, এবং আউটপুট অন্তর্ভুক্ত।


1

পিএইচপি, 78 76 74 বাইট

for(;++$i<$argv[$f=$k=1];$s+=$i*!$f)for(;$v=$argv[++$k];)$f*=$i%$v;echo$s;

বাইরের লুপ রান $i1 থেকে প্রথম আর্গুমেন্ট নীচে এবং যোগ $iকরার জন্য $sযদি $fহয় না সেট।
অভ্যন্তরীণ লুপটি পরবর্তী সমস্ত আর্গুমেন্ট, সেটিংয়ের জন্য $f( $iমডুলো আর্গুমেন্ট) দিয়ে বহুগুণ হয়$f করে 0যদি করে$i তাদের কোন একাধিক হয়।

সাথে চালাও -r


1

স্কালা, 47 বাইট

n=>1.to(n(0)-1).filter(i=>n.exists(i%_==0)).sum

n হল একটি তালিকা যা প্রথম যুক্তি ধারণ করে N , বাকী অংশগুলির উপাদানA

সংখ্যাগুলি ফিল্টার করে কাজ করে যেখানে কমপক্ষে একটি A উপস্থিত থাকে না যার মধ্যে আমি একাধিক, তার পরে যোগফল। কঠোরভাবে বলতে গেলে আমাদের n.tail.existsবন্ধের অভ্যন্তরে ব্যবহার করা উচিত , তবে আমি সর্বদা N এর চেয়ে কম থাকি এবং তাই N এর একাধিক সমাধান কখনই সমাধান ছাড়াই সম্পূর্ণ হয় না।


1

জাভা 8, 75 বাইট

(N,A)->IntStream.range(1,N).filter(x->A.stream().anyMatch(y->x%y==0)).sum()

এর জন্য পদ্ধতিটির স্বাক্ষর int f(int N, List<Integer> A)



1

সি 11, 177 বাইট

#include"object.h"
#define S size_t
S g(S m,array_t*d){S s,i,l,j;for(s=i=0;i<m;i++){for(l=1,j=0;j<d->idx+1;l*=i%(S)(*array_get_ref(d,j++,NULL))->fwi->value);s+=l?0:i;}return s;}

হেডারগুলির এই সেটটি প্রয়োজন setএকই ফোল্ডারে এবং thefnv-hash গ্রন্থাগার পাশাপাশি সেখানে পাওয়া যায় নি। মত সংকলনgcc 1.c ../fnv-hash/libfnv.a -o 1 -DNODEBUG

পরীক্ষা প্রোগ্রাম:

#include "../calc/object/object.h"
#include <stdio.h>

size_t f (const size_t max, const size_t a, const size_t b);
size_t f2 (const size_t max, const array_t* const divs);
size_t g (size_t max, array_t* divs);

define_array_new_fromctype(size_t);

int main(void) {
  printf("%zu\n", f(10, 3, 5));
  static const size_t a[] = {
    3, 5
  };
  array_t* b = array_new_from_size_t_lit(a, 2, t_realuint);
  printf("%zu\n", f2(10, b));
  printf("%zu\n", g(10, b));
  array_destruct(b);
  return 0;
}

size_t f (const size_t max, const size_t a, const size_t b) {
  size_t sum = 0;
  for (size_t i = 0; i < max; i++) {
    sum += (i % a * i % b) ? 0 : i;
  }
  return sum;
}

size_t f2 (const size_t max, const array_t* const divs) {
  size_t sum = 0;
  const size_t len = array_length(divs);

  for (size_t i = 0; i < max; i++) {
    size_t mul = 1;
    for (size_t j = 0; j < len; j++) {
      object_t** this = array_get_ref(divs, j, NULL);

      fixwid_t*   num = (*this)->fwi;

      mul *= i % (size_t) num->value;
    }
    sum += mul ? 0 : i;
  }
  return sum;
}

#define S size_t
S g(S m,array_t*d){S s,i,l,j;for(s=i=0;i<m;i++){for(l=1,j=0;j<d->idx+1;l*=i%(S)(*array_get_ref(d,j++,NULL))->fwi->value);s+=l?0:i;}return s;}

আউটপুট

23
23
23


1

ফিসফিসি ভি 2 , 178 বাইট

> Input
> Input
> ℕ
>> (1)
>> ∤L
>> {L}
>> L∩2
>> #L
>> L∈3
>> L⋅R
>> Each 5 4
>> Each 6 11
>> Each 7 12
>> Each 8 13
>> Each 9 14
>> Each 10 15 4
>> ∑16
>> Output 17

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

কাঠামো গাছ:

কাঠ গাছ

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

খুব সহজভাবে, আমরা প্রতিটি সংখ্যা ( Eachতাদের সাথে রেখাগুলি ) একটি ক্রিয়া (তাদের সাথে রেখাগুলি ) এর মাধ্যমে রাখি L, তারপরে, এই ফাংশনগুলির ফলাফলের ভিত্তিতে, আমরা কিছু সংখ্যার ত্যাগ করি এবং বাকিগুলি রাখি, শেষ পর্যন্ত তাদের সংক্ষিপ্তকরণের আগে । আসলে, আমরা those ফাংশনগুলি সংজ্ঞায়িত করতে পারি, যেখানেα ইনপুট হিসাবে দেওয়া সংখ্যার সেটকে বোঝায়:

(এক্স)={আমি|(আমি|এক্স),আমিএন}অর্থাত্ বিভক্তকারীদের সেটএক্স(এক্স)=(এক্স)αঅর্থাত্ বিভক্তকারীদের মিলনএক্সসঙ্গেα(এক্স)=|(এক্স)|>0অর্থাত(এক্স)খালি না

এটি 5 থেকে 10 পর্যন্ত লাইনগুলি প্রতিনিধিত্ব করে। 11 থেকে 16 টি রেখা কেবল এই তিনটি ফাংশনের প্রয়োগ। একবার আমরা সমস্ত ফাংশন সংজ্ঞায়িত করার পরে, তারপর আমরা পরিবর্তনα থেকে β নিম্নলিখিত নিয়ম অনুসারে:

βআমি={αআমি(αআমি)0(αআমি)

কোথায় αআমি ইঙ্গিত করে আমিএর তম উপাদান α, এবং একই জন্য β। অবশেষে, আমরা কেবল যোগফল নিতে পারিβহিসাবে, 0 উপাদানগুলি যোগফলকে প্রভাবিত করে না।




0

প্রক্রিয়াজাতকরণ, 88 বাইট

int q(int a,int[]b){int s=0,i=0;for(;++i<a;)for(int j:b)if(i%j<1){s+=i;break;}return s;}

সহজ- forলুপ পদ্ধতির ব্যবহার করে , সমস্ত গুণকের সমষ্টি করে এবং এটি প্রদান করে। ইনপুট হ'ল বিন্যাস int, int[]অ্যারে।

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