N এর বিভাজকের যোগফলটি সন্ধান করুন


20

এমন একটি প্রোগ্রাম লিখুন যা স্ক্রিনে 1 থেকে N এর মধ্যে ব্যবহারকারী দ্বারা প্রবেশ করা একটি সংখ্যার (1 ≤ N ≤ 100) বিভাজকের যোগফল প্রদর্শন করে

এটি OEIS A000203


উদাহরণ:

ইনপুট : 7

7 / 1 = 7
7 / 7 = 1

7 + 1 = 8

আউটপুট: 8


ইনপুট: 15

15 / 1 = 15
15 / 3 = 5
15 / 5 = 3
15 / 15 = 1

15 + 5 + 3 + 1 = 24

আউটপুট: 24


ইনপুট: 20

20 / 1 = 20
20 / 2 = 10
20 / 4 = 5
20 / 5 = 4
20 / 10 = 2
20 / 20 = 1

20 + 10 + 5 + 4 + 2 + 1 = 42

আউটপুট: 42


ইনপুট: 1

1 / 1 = 1

আউটপুট: 1


ইনপুট: 5

5 / 1 = 5
5 / 5 = 1

5 + 1 = 6

আউটপুট: 6


6
@ এইচ.পি.উইজ আমি মনে করি তার অর্থ "সংখ্যার এন বিভাজক"
বেনজিন

আমি মনে করি আপনি সিগমা ফাংশন , যোগ বিভাজকের যোগফল বলতে চান ?
স্টিফেন

দুঃখিত, আমার অর্থ "N এর একাধিকের যোগফল"।
কেভিন হ্যালি

@ এইচপিউইজ এটি এইগুলির যোগফল, তাই আমি ডুনো
স্টিফেন

@ স্টিফেন এটি আমার কাছে তুচ্ছ পরিবর্তন মনে হচ্ছে
এইচ.পি.উইজ

উত্তর:



6

x86-64 মেশিন কোড, 23 বাইট

89 F9 89 FE EB 0D 89 F8 99 F7 F1 85 D2 99 0F 44 D1 01 D6 E2 F1 96 C3

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

EDIসিস্টেম ভি এএমডি 64 এবিআই (* নিক্স-স্টাইল সিস্টেমে ব্যবহৃত হিসাবে) এর সাথে সামঞ্জস্য রেখে একক প্যারামিটারটি রেজিস্টারে পাস করা হয় । EAXসমস্ত x86 কলিং কনভেনশনগুলির মতো, ফলাফলটি রেজিস্টারে ফিরে আসে ।

অ্যালগোরিদম একটি খুব সোজা, এটি অন্যান্য ভাষায় অন্যান্য জমা দেওয়ার মতো। আমরা এন বার লুপ করি, প্রতিটি সময় মডিউলগুলি গণনা করি এবং এটি আমাদের চলমান মোটে যুক্ত করি।

অবহেলিত সমাবেশ মেমোনমিক্স:

; unsigned SumOfMultiples(unsigned N  /* (EDI) */)
    mov     ecx, edi      ; make copy of input N, to be used as our loop counter
    mov     esi, edi      ; make copy of input N, to be used as our accumulator
    jmp     CheckEnd      ; jump directly to 'CheckEnd'
AddModulo:
    mov     eax, edi      ; make copy of input N, to be used as input to DIV instruction
    cdq                   ; short way of setting EDX to 0, based on EAX
    div     ecx           ; divide EDX:EAX by ECX, placing remainder in EDX
    test    edx, edx      ; test remainder, and set ZF if it is zero
    cdq                   ; again, set EDX to 0, without clobbering flags
    cmovz   edx, ecx      ; set EDX to ECX only if remainder was zero (EDX = ZF ? 0 : ECX)
    add     esi, edx      ; add EDX to accumulator
CheckEnd:
    loop    AddModulo     ; decrement loop counter (ECX), and keep looping if it != 0
    xchg    eax, esi      ; move result from accumulator (ESI) into EAX
    ret                   ; return, with result in EAX

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

এটিকে নিশ্চিত করার মতো মনে হচ্ছে এটিকে আরও খাটো করার কোনও উপায় থাকা উচিত, তবে আমি এটি দেখতে পাচ্ছি না। X86-তে মডিউল গণনা করতে কোডটি বেশ খানিকটা সময় নেয়, যেহেতু আপনি এটি DIV(বা IDIV) নির্দেশিকা ব্যবহার করে করেন এবং এই দু'টিই ফিক্সড ইনপুট রেজিস্টার ( EDXএবং EAX) ব্যবহার করেন, যার মানগুলি ক্লোবারড হয়ে যায় (কারণ তারা ফলাফলগুলি প্রাপ্ত করে, বাকিগুলি এবং ভাগফল যথাক্রমে)।

এখানে কেবল আসল কৌশলগুলি হ'ল বেশ মানসম্পন্ন গল্ফিং:

  • আমি কোডটি কিছুটা অস্বাভাবিক উপায়ে কাঠামোগত করেছি যাতে আমি সিআইএসসি-স্টাইল LOOPনির্দেশ ব্যবহার করতে পারি , যা মূলত অন্তর্নিহিত অপারেন্ড হিসাবে নিবন্ধকের সাথে কেবলমাত্র DEC+ এর সংমিশ্রণ ।JNZECX
  • XCHGপরিবর্তে আমি শেষে ব্যবহার করছি MOVকারণ EAXঅপারেটরগুলির মধ্যে একটি যখন প্রাক্তনটির একটি বিশেষ 1 বাইট এনকোডিং থাকে ।
  • বিভাগের প্রস্তুতির ক্ষেত্রে আমি CDQশূন্য আউট ব্যবহার করি EDX, স্বাক্ষরযুক্ত বিভাগের জন্য আপনি সাধারণত এটিকে শূন্য করে বলবেন XOR। যাইহোক, XORসর্বদা 2 বাইট হয়, যখন CDQকেবল 1 বাইট হয়। আমি নির্দেশের আগে CDQলুপের ভিতরে আবারও শূন্য থেকে দ্বিতীয় বার ব্যবহার করি । এটি কাজ করে কারণ আমার গ্যারান্টি দেওয়া যেতে পারে যে বিভাগের ভাগফল (ইন ) সর্বদা স্বাক্ষরহীন, সুতরাং এতে একটি সাইন-এক্সটেনশন 0 এর সমান হয়ে যাবে ।EDXCMOVZEAXEDXEDX


3


@ মিঃ এক্সকোডার: আসলেই বিকল্প নয়; এটি ঠিক একই জিনিসটি করছে - পার্থেসাইজিংয়ের পছন্দ কেবল পার্থক্য।
শেগি

বা পতাকা সহ -x, এটি এক বাইট হতে পারে
এগিনিয়র


3

গণিত, 14 বাইট

Tr@Divisors@#&   

অথবা @ লোকির একটি উত্তর

গণিত, 17 বাইট

DivisorSum[#,#&]&

@ জেনিমাঠি খুব সুন্দর, ধন্যবাদ! এটি লেখার একটি সমতুল্য এবং মজাদার উপায় হ'ল ডিভাইডারসাম [#, # &] এবং
বিদ্রোহী-স্কাম

@ জেনিমাঠি হুম, এটি আরও ভাল: মোট @ ডিভোর্স @ কেবলমাত্র 15 টি অক্ষর লম্বা! এবং এটি কাজ করে: উদাহরণস্বরূপ মোট @ বিভাজক @ 15 24 দেয়। ম্যাথামেটিকাল FTW এর :)
বিদ্রোহী-গাদ

2
@ লোকী এবং Tr@Divisors@#&আরও উন্নত ;-)
জে 212161217

1
প্রোগ্রাম @Loki একটি ফাংশন হতে হবে f=যে একটি ইনপুট চ লাগে [X] যে কেন আমি এটা এই way.Welcome PPCG করার জন্য উপস্থিত
J42161217

3
আপনি Tr@*Divisorsএকটি বাইট শেভ করতে ব্যবহার করতে পারেন ।
wchargin

3

সি, সি ++, সি #, ডি, জাভা, 65 62 বাইট

int d(int n){int s=0,i=1;for(;i<=n;++i)s+=n%i>0?0:i;return s;}

এটি মিলগুলির কারণে এই 5 টি প্রোগ্রামিং ভাষায় কাজ করে।

সি, সি ++ এবং ডি অপ্টিমাইজেশন: 62 60 বাইট

সি ++ এবং ডি-তে, পূর্ণসংখ্যাগুলি সুস্পষ্টভাবে বুলেটিনে রূপান্তরিত করে (জিরো => মিথ্যা, শূন্য নয় => সত্য), সুতরাং আপনার দরকার নেই !=0

int d(int n){int s=0,i=1;for(;i<=n;++i)s+=n%i?0:i;return s;}

ডি অপ্টিমাইজেশন: গোল্ফ টেম্পলেট সিস্টেম, 55 বাইট

T d(T)(T n){T s,i=1;for(;i<=n;++i)s+=n%i?0:i;return s;}

পরীক্ষার কোড :

সি:

printf("%d %d %d %d %d", d(7), d(15), d(20), d(1), d(5));

সি ++:

std::cout << d(7) << ' ' << d(15) << ' ' << d(20) << ' ' << d(1) << ' ' << d(5);

সি #:

class FindSum
{
    int d(int n) { int s = 0, i = 1; for (; i <= n; ++i) s += n % i > 0 ? 0 : i; return s; }

    static void Main(string[] args)
    {
        var f = new FindSum();
        Console.WriteLine(string.Format("{0}, {1}, {2}, {3}, {4}", f.d(7), f.d(15), f.d(20), f.d(1), f.d(5)));
    }
}

ডি:

writeln(d(7));
writeln(d(15));
writeln(d(20));
writeln(d(1));
writeln(d(5));

জাভা:

public class FindSum {
    int d(int n){int s=0,i=1;for(;i<=n;++i)s+=n%i>0?0:i;return s;}

    public static void main(String[] args) {
        FindSum f = new FindSum();
        System.out.println(String.format("%d, %d, %d, %d, %d", f.d(7), f.d(15), f.d(20), f.d(1), f.d(5)));
    }
}

কয়েকটি জিনিস: প্রথমত, আমি মনে করি না যে কোনও ভাষার n%i/ আশেপাশে আপনার প্রথম বন্ধনী প্রয়োজন n%i!=0। দ্বিতীয়ত, আপনার প্রথম সমাধানটির n%i>0পরিবর্তে এটি সক্ষম হওয়া উচিত n%i!=0। তৃতীয়, ডি এর সমাধানটি T d(T)(T n){T s,i=1;for(;i<=n;++i)s+=n%i?0:i;return s;}টেম্পলেট সিস্টেম এবং ডিফল্ট মানগুলিকে আপত্তিজনক ব্যবহারের মাধ্যমে হতে পারে ।
জাকারি

3

স্নাপ , 44 43 বাইট

-১ মিঃ এক্সকোডারকে বিদায় জানাতে (লোল আমি নিজের ভাষায় ছড়িয়ে পড়েছি)

 $n return:{s=0for d:range(n+1)if n%d<1s+=d}

এটি একটি ফাংশন ( $স্ন্যাপে একটি ফাংশন শুরু করে)।

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

ব্যাখ্যা:

$ n                        //Start function with parameter n
    return: {              //Technically, we are returning a scope-block, which evaluates to the last statement run
        s = 0              //Our result
        for d : range(n+1) //For each value in the iterator range(n+1)
            if n % d < 1  // If n is divisible by d
                s += d     // Add d to the sum
                           // Since (s += d) returns (s + d), and a scope-block returns the last run statement, this will be the last statement and equal to our result
    }

নন-কেপটিং, 19 বাইট

অনেকগুলি ভাষা আপডেটের পরে, এখন এটি একটি 19 টি বাইটে হ্রাস করা যেতে পারে:

$n=>sum(factors(n))

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


1
==0হয় <1( 43 বাইট )
জনাব Xcoder

@জনাব. এক্সকোডার ধন্যবাদ ... আমি আউটগল্ফড হয়ে গিয়েছিলাম ... আমার নিজের ভাষায় ... যা কোনও গৌরবময় এক্সডিও নয়
সকরাটিক ফিনিক্স

2

পাইথন, 44 বাইট

lambda k:sum(i*(k%i<1)for i in range(1,1+k))
  • স্টিফেনকে ধন্যবাদ, সাদা স্থান সরিয়ে 1 বাইট সংরক্ষণ করুন save
  • জোনাথন ফ্র্যাচকে ধন্যবাদ, যদি গুণিত হয় তবে পরিবর্তন করে আরও 1 বাইট সংরক্ষণ করুন।

2

জে, 23 বাইট

[:+/](([:=&0]|[)#])1+i.

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

জে অনুরাগীদের জন্য, একটি চৌকস 13 বাইট সমাধান রয়েছে : >:@#.~/.~&.q:তবে এটি আমার আবিষ্কার না হওয়ায় আমি এটি আমার অফিসিয়াল উত্তর হিসাবে পোস্ট করছি না।

আমার নিজস্ব সমাধান কেবল 1..n ফিল্টার করে, বিভাজনকারীদের সন্ধান করে তার পরে অঙ্ক করে। এর কর্সটি হ'ল ডায়ডিক কাঁটাচামচ

](([:=&0]|[)#])

মনে রাখবেন যে এই প্রসঙ্গে ]1..n, এবং [এটি নিজেই। সুতরাং ]|[1..n এর প্রতিটি উপাদানকে এন-তে ভাগ করার সময় অবশিষ্টাংশ রয়েছে এবং =&0তারা আপনাকে 0 এর সমান হয় কিনা তা বলে দেয়।


2
এটি 13 বাইটের জন্য সমতুল্য হওয়া উচিত:+1#.i.*0=i.|]
মাইল

@ মাইলস, এটি সত্যিই দুর্দান্ত । এই অংশটি i.|]আমার পদ্ধতির একটি দুর্দান্ত উন্নতি। যদিও আমি এই অংশটি পুরোপুরি বুঝতে পারি না: +1#.i.- আপনি এটি ব্যাখ্যা করতে পারেন?
জোনাহ

2
1#.বেস 1 রূপান্তর, যা সমান +/"1। প্রথমে i.|]অবশিষ্টাংশগুলি পেতে, তারপরে 0=0 (বিভাজক) এর সমানকে i.*খুঁজে বের করতে হবে, তারপরে রেঞ্জের বিভাজনকারীদের শূন্য করে তারপরে যোগফল 1#.যোগ করুন, তারপরে +নিজেই যুক্ত করুন যেহেতু i.একচেটিয়া পরিসীমা।
মাইল



2

এমএটিএল , 6 বাইট

t:\~fs

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

-4 বাইটস @ লুইস মেন্ডোকে ধন্যবাদ

10 বাইট

লুপ ব্যবহার করে আমার আগের সমাধান

:"G@\~@*vs

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

3 বাইট

অন্তর্নির্মিত ব্যবহার করে

Z\s

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


2

জাভাস্ক্রিপ্ট, 54 44 বাইট

n=>[...Array(x=n)].reduce(y=>y+!(n%x)*x--,0)

সংরক্ষিত 10 ধন্যবাদ বাইট রোমশ

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

const f = n=>[...Array(x=n)].reduce(y=>y+!(n%x)*x--,0)

console.log(f(7))
console.log(f(15))
console.log(f(20))
console.log(f(1))
console.log(f(5))


2

ব্রেন-ফ্লাক , 96 বাইট

((({})<>){<(([()]{})){<>(({})(<()>))<>{(({})){({}[()])<>}{}}{}<>([{}()]({})){((<{}{}>))}}{}>{}})

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

ব্যাখ্যা:

উন্নতি করে এখন পুরানো।

অ্যালগরিদমের হৃদয় এটি:

({}(<>))<>{(({})){({}[()])<>}{}}{}<>([{}()]({})) turns |N, M...| into |N mod M, M...|
{((<{}{}>))} if the top of stack is not zero, replace it and the second with zero

এটি মোডে একটি পরিবর্তন যা এটি দেবে Mযদি এটির ফ্যাক্টর Nএবং 0অন্যথায় হয়। পুরো কোডটি নীচে।

((({})<>) place input, N on both stacks
{ Loop to find factors
 <
  (([()]{})) Decrement and Duplicate; get next factor to check
  { if not zero
   (<>({})<>) Copy N from other stack
   ({}(<>))<>{(({})){({}[()])<>}{}}{}<>([{}()]({})){((<{}{}>))} Code explained above
  }
  {} drop the zero
 >
 {} add the factor
}) push the sum

আপনার কি ব্যাখ্যা আছে?
গম উইজার্ড

@ ফানকি কম্পিউটার কম্পিউটার এখন আমি একটি পেয়েছি!
মেগাটম

2

আর , 31 26 বাইট

function(N)(x=1:N)%*%!N%%x

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

ফিরে আসে a 1x1 ম্যাট্রিক্স প্রদান করে।

এর দ্বারা !N%%xমানচিত্রের উপাদানগুলির গণনা করুন :d1:Nd->(1 if d divides N, 0 otherwise)

তারপরে x%*%x!N%%xম্যাট্রিক্স পণ্যটি হ'ল এর 1:Nফলাফল xযেখানে কোথায় !N%%xরয়েছে তার যোগফল 1। ঝরঝরে! প্রযুক্তিগতভাবে লুইস মেন্ডোর অক্টাভ উত্তরের একটি বন্দর তবে আমি কেবল এটি দেখে ভেবেছিলাম।

আর + সংখ্যা, 14 বাইট

numbers::Sigma

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


প্রথমটির জন্য আপনি 2 বাইট সংরক্ষণ করতে পারবেনN=scan();
gstats

@gstats হ্যাঁ, তবে তারপরে আমার প্রতি মেটা আলোচনায় +4 বাইট পাওয়া উচিত । আপনার যদি দৃ strong় মতামত থাকে তবে আপনি জারকোর জবাবটি বিবেচনা করতে পারেন তবে যেমন কেউ বিকল্প প্রস্তাব করেনি, তা আমার মনে দাঁড়িয়ে আছে।
জিউসেপ

দ্বিতীয়টি হওয়া উচিত নয় numbers::Sigma(N)? এটির মতো এটি ফাংশনের সোর্স কোডকে আউটপুট করে Sigma
রুই ব্যারাদাস - মনিকে পুনরায় স্থাপন করুন

@ রুইবারাদাস একটি ফাংশন একটি পুরোপুরি ভাল জমা। এটি পরীক্ষা করার জন্য, আপনাকে অবশ্যই অবশ্যই এটি প্রথম কল হিসাবে কল করতে হবে।
জিউসেপে

1

জাভাস্ক্রিপ্ট, 31 বাইট

f=(n,i=n)=>i&&!(n%i)*i+f(n,i-1)



1

ভিবিএ (এক্সেল), 73 বাইট

a=Cells(1,1)
x=1
While x<=a
If a Mod x = 0 Then b=b+x
x=x+1
Wend
MsgBox b

এই উত্তরটি অবৈধ কারণ এটি স্নিপেটের সংগ্রহ যা স্ট্যান্ড হিসাবে একক ইউনিট হিসাবে চালানো যায় না। এটি বৈধ করার জন্য আপনাকে এটিকে সাবরুটিন বা একটি বেনামে VBE তাত্ক্ষণিক উইন্ডো ফাংশনে রূপান্তর করতে হবে।
টেলর স্কট

আপনি যা বলেছিলেন সে সম্পর্কে আমি খুব বেশি পরিচিত নই। আপনি কি আমাকে আরও কিছু সাহায্য করতে পারেন?
রিমুয়েল

এই পোস্টটি বৈধ করার জন্য আপনাকে এটিকে নিম্নলিখিত ফর্ম্যাটগুলির মধ্যে একটিতে রূপান্তর করতে হবে, 1 - সুব্রোটাইন, 2 - ফাংশন, 3 - বেনামে ভিবিই তাত্ক্ষণিক উইন্ডো ফাংশন (একক লাইন যা তাত্ক্ষণিক উইন্ডোতে কার্যকর করা যেতে পারে); আপনার বাস্তবায়নের জন্য, এর সহজতম বাস্তবায়ন হ'ল মোড়ক দিয়ে সাবউটিনে রূপান্তর করা Sub Y... End Sub85 বাইট সমাধান পেতেSub y A=Cells(1,1) x=1 While x<=A If A Mod x=0 Then b=b+x x=x+1 Wend MsgBox b End Sub
টেলর স্কট

তবে এটি That২ বাইট সলিউশন থেকে বেশ ভারীভাবে অনুকূল করা যেতে পারে Sub y While x<=[A1] x=x+1 If [A1]Mod x=0Then b=b+x Wend Debug.?b End Subযা ধরে নিয়েছে যে এটি একটি পরিষ্কার মডিউল (x = ডিফল্ট ইনট মান, 0) এবং VBE তাত্ক্ষণিক উইন্ডোতে আউটপুট ( ?অটোফর্ম্যাট Print )
টেলর স্কট

এই ছাড়াও, এবং স্বীকার করেন যে আপনার সমাধান সাবরুটিন কলের মাধ্যমে ইনপুট লাগবে না, এই তারপর 50 বাইট একটি VBE অবিলম্বে উইন্ডোতে ফাংশন পরিবর্তিত করা যায় While x<=[A1]:x=x+1:b=IIf([A1]Mod x,b,b+x):Wend:?bযা অনুমান x, b(থেকে VBE অবিলম্বে উইন্ডোতে 0 ডিফল্ট মান এবং আউটপুট হয় ভিবিই তাত্ক্ষণিক উইন্ডো ?সমতুল্য Debug.Print )
টেলর স্কট

1

পাইথ , 6 বাইট

s*M{yP

এখানে চেষ্টা করুন!

পাইথের বিভাজকদের জন্য অন্তর্নির্মিত ব্যবস্থা নেই, তাই আমি মনে করি এটি যুক্তিসঙ্গত।

ব্যাখ্যা

s * M {yP - অন্তর্নিহিত ইনপুট সহ সম্পূর্ণ প্রোগ্রাম।

     পি - ইনপুট প্রধান উপাদান।
    y - এর প্রধান কারণগুলির শক্তি।
   {- অনুলিপি।
 * এম - গুণ সহ মানচিত্র।
s - যোগফল।
          - ফলকে সুস্পষ্টভাবে প্রদর্শন করুন।

20উদাহরণস্বরূপ, দেওয়া প্রতিটি প্রোগ্রামের পরে আমাদের প্রোগ্রামটি এটি করে:

  • P: [2, 2, 5]

  • y: [[], [2], [2], [5], [2, 2], [2, 5], [2, 5], [2, 2, 5]]

  • {: [[], [2], [5], [2, 2], [2, 5], [2, 2, 5]]

  • *M: [1, 2, 5, 4, 10, 20]

  • s: 42



1

কাস্তে , 5 বাইট

ṁΠuṖp

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

কিভাবে?

--uṖp - সম্পূর্ণ প্রোগ্রাম, অন্তর্নিহিত ইনপুট।

     পি - প্রধান উপাদান।
    Ṗ - পাওয়ারসেট।
   u - সদৃশগুলি সরান।
ṁΠ - প্রতিটি তালিকার পণ্য, যোগফল এবং স্পষ্টভাবে আউটপুট পান।

চ্যাটে পরামর্শের জন্য জগারবকে ধন্যবাদ!





0

বাশ + জিএনইউ ইউটিলিটিস, 36

bc<<<`seq -f"n=%g;a+=n*!$1%%n;" $1`a

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


খাঁটি বাশ, 41

for((;++i<=$1;a+=$1%i?0:i))
{
:
}
echo $a

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

আমি প্রথমে অভিনব বাশ প্রসারণের উত্তরটি চেষ্টা করেছিলাম, তবে এটি উপরের সরল লুপের চেয়ে দীর্ঘ হয়ে গেছে:

echo $[$(eval echo +\\\(n={1..$1},$1%n?0:n\\\))]

0

++ , 9 বাইট যুক্ত করুন

D,f,@,dFs

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

আমি স্পষ্টভাবে এখানে অনেক দেরিতে এসেছি। এটি একটি ফাংশন সংজ্ঞায়িত করে যা উপাদানগুলি পায়, তারপরে তাদের যোগফল দেয়।


0

কিউবিআইসি , 17 বাইট

[:|~b%a|\p=p+a}?p

ব্যাখ্যা

[:|      FOR a = 1; a <= b (read from cmd line); a++
~b%a|    IF b modulo a has a remainder THEN - empty block - 
\p=p+a   ELSE add divisor 'a' to running total 'p'
}        END IF, NEXT
?p       PRINT p

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