তোমরা সবাই আমাকে বিভক্ত কর!


37

সংজ্ঞা

  • একটি নিখুঁত বর্গ হল একটি পূর্ণসংখ্যা যা অন্য পূর্ণসংখ্যার বর্গ হিসাবে প্রকাশ করা যায়। উদাহরণস্বরূপ, 36একটি নিখুঁত বর্গ কারণ 6^2 = 36
  • একজন squarefree সংখ্যা একটি পূর্ণসংখ্যা যা কোন নিখুঁত বর্গক্ষেত্র দ্বারা বিভাজ্য নয়, ছাড়া হয় 1। উদাহরণস্বরূপ, 10একটি বর্গফ্রি নম্বর। তবে এটি একটি বর্গক্ষেত্র 12সংখ্যা নয়, কারণ 12এটি দ্বারা বিভাজ্য 4এবং 4একটি নিখুঁত বর্গ।

কার্য

একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া হয়েছে n, বিভাজনে বৃহত্তম স্কোয়ারফ্রি নম্বর আউটপুট n

Testcases

n   output
1   1
2   2
3   3
4   2
5   5
6   6
7   7
8   2
9   3
10  10
11  11
12  6
13  13
14  14
15  15
16  2
17  17
18  6
19  19
20  10
21  21
22  22
23  23
24  6
25  5
26  26
27  3
28  14
29  29
30  30
31  31
32  2
33  33
34  34
35  35
36  6
37  37
38  38
39  39
40  10
41  41
42  42
43  43
44  22
45  15
46  46
47  47
48  6
49  7
50  10

স্কোরিং

এটি । বাইট জিতে সংক্ষিপ্ত উত্তর।

স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।

উল্লেখ


1
... এবং বলা হয় র‌্যাডিক্যাল - তাই ১৯৮০ এর!
জোনাথন অ্যালান

ঘনিষ্ঠভাবে সম্পর্কিত , কেবল দুটি আউটপুট গুণান। সম্পাদনা: কিছু মনে করবেন না, এটি কেবল কিউব্রি নম্বরগুলিতে মেলে।
xnor

উত্তর:


45

05 এ বি 1 , 2 বাইট

fP

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

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

f   Implicitly take input and compute the integer's unique prime factors.
 P  Take the product.

26
> _> সত্যই ... ??
হাইপারনিউটারিনো

@ হাইপারনিট্রিনো হ্যাঁ - কোনও সংখ্যা যদি বর্গামুক্ত না হয় তবে এটি এর প্রধান উপাদানগুলির মধ্যে বেশিরভাগের সংখ্যা রয়েছে।
জোনাথন অ্যালান

@ জোনাথান অ্যালান আমি অনন্য প্রাথমিক কারণগুলির জন্য বিল্ট-ইন-এ কেবল আগ্রহী। আমি আশা করি জেলি এর মধ্যে একটি থাকত ...
হাইপারনিউট্রিনো

@ হাইপারনিট্রিনো এটি 05 এএবি 1 ই, এটির অভ্যস্ত হয়ে উঠুন। 05 এ বি 1 ই এর কিছু সত্যই নিরর্থক বিল্টইন রয়েছে যা স্পষ্টতই বাইটগুলি সংরক্ষণ করে।
এরিক আউটগলফার

6
সংশোধন, "বাইটস সংরক্ষণ করুন", এটি সম্পর্কে সম্ভবত কোনও নেই।
ড্রাকো 18

14

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

ḋd×

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

খুব আসল উত্তর ...

ব্যাখ্যা

ḋ          Take the prime factors of the Input
 d         Remove duplicates
  ×        Multiply

1
আবার, ব্র্যাচল্যাগ জেলিকে মারধর করে কারণ এখানে একটি দুটি বাইট পরমাণু কেবল একটি বাইট। > :
পি

4
জেলি অনেকগুলি বিল্টইন রাখার প্রায়শই একটি সুবিধা হিসাবে দেখা হয়; তবে আরও বিল্টইনগুলির অর্থ হল তাদের গড়ে গড়ে দীর্ঘ নাম প্রয়োজন। গল্ফিং ভাষা নকশার সাথে জড়িত ট্রেড অফস রয়েছে।

2
আমি "সেই লোক" হওয়ার চেষ্টা করছি না, এবং সম্ভবত আমি বাইট গণনা ভুল বুঝেছি, তবে এই 6 বাইট না? mothereff.in/byte-counter#ḋd ×
ক্যাপ্টেন ম্যান

5
@ ক্যাপিটম্যান ম্যান ব্র্যাচল্যাগ একটি 256 টি চর কাস্টম কোড পৃষ্ঠা ব্যবহার করে যা আপনি এখানে দেখতে পারেন ।

14

জাভাস্ক্রিপ্ট (ES6), 55 54 50 46 বাইট

ওইআইএসের উদ্ধৃতি :
ক (এন) হ'ল এন এর মধ্যে সবচেয়ে ছোট বিভাজক যা এন আপনাকে ভাগ করে ^ n

হালনাগাদ বাস্তবায়ন:
ক (এন) হ'ল এন পজিটিভ পূর্ণসংখ্যার মধ্যে সবচেয়ে ছোট বিভাজক এমন যে n আপনাকে ভাগ করে ^ n

let f =

n=>(g=(p,i=n)=>i--?g(p*p%n,i):p?g(++u):u)(u=1)

for(n = 1; n <= 50; n++) {
  console.log(n,f(n));
}


সমস্যার ভাল পদ্ধতির, esp। builtin গুণকনির্ণয় দেওয়া অভাব
Riking

12

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

@ লিক্যুন থেকে সহায়তায় 2 বাইট সংরক্ষণ করা হয়েছে

Yfup

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

ব্যাখ্যা

ইনপুট বিবেচনা করুন 48

Yf   % Implicit input. Push prime factors with repetitions.  STACK: [2 2 2 2 3]
u    % Unique.                                               STACK: [2 3]
p    % Product of array. Implicit display.                   STACK: 6


@ লেকিউন হিহ, আমি পোস্ট করতে চলেছিলাম :-) ধন্যবাদ
লুইস মেন্ডো


9

সিজেম , 8 বাইট

rimf_&:*

এই প্রোগ্রামের প্রতিটি ক্রিয়াকলাপটি 2 বাইট হতে হবে -_-

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

ri       e# Read int from input
  mf     e# Get the prime factors
    _&   e# Deduplicate
      :* e# Take the product of the list

সদৃশ করার উপায় খুঁজে পাইনি। নিস!
লুইস মেন্ডো

@ লুইস মেন্ডো আমি সম্প্রতি এটি আবিষ্কার করেছি। আমি সবসময় ভাবতাম এটি মাল্টিসেট ছেদ ছিল তবে দৃশ্যত এটি কেবল সাধারণ সেট ছেদ রয়েছে।
বিড়াল বিড়াল

9

রেটিনা , 36 30 28 বাইট

+`((^|\3)(^(1+?)|\3\4))+$
$3

আনারি ইনপুট এবং আউটপুট ।

এটি অনলাইন চেষ্টা করুন! (দশমিক <-> অমান্য রূপান্তরকরণ এবং একবারে একাধিক পরীক্ষার কেস চালানোর জন্য একটি শিরোনাম এবং পাদচরণ অন্তর্ভুক্ত))

ব্যাখ্যা

ধারণাটি কোনও ফ্যাক্টর হিসাবে বর্গাকার হিসাবে ইনপুটটি মেলাতে হবে। বর্গক্ষেত্রের সাথে মিলের জন্য প্রাথমিক রেজেক্স একটানা বিজোড় পূর্ণসংখ্যার যোগফলগুলি মেলে ফরোয়ার্ড-রেফারেন্স ব্যবহার করে:

(^1|11\1)+$

যেহেতু আমরা নিখুঁত স্কোয়ারগুলির সাথে মেলে রাখতে চাই না, তবে যে সংখ্যাগুলি একটি বর্গ দ্বারা বিভাজ্য, তাই আমরা 1সেটিকে একটি পিছনের সাথে নিজেই প্রতিস্থাপন করি :

(^(1+?)|\1\2\2)+$

সুতরাং এখন বাহ্যিক গোষ্ঠী n বার 1ব্যবহার করা হবে যেখানে এন 2 বৃহত্তম বর্গ যা ইনপুট ভাগ করে দেয় এবং গোষ্ঠীটি অবশিষ্ট ফ্যাক্টরটি সঞ্চয় করে। আমরা যা চাই তা হল বর্গটি সরাতে n দ্বারা পূর্ণসংখ্যা ভাগ করা । ফলাফলটি গ্রুপ টাইম গ্রুপের পুনরাবৃত্তির সংখ্যা হিসাবে প্রকাশ করা যেতে পারে তবে এটি করা কিছুটা জটিল। এর ডান হাতের যুক্তি হিসাবে একটি অক্ষরবিহীন টোকেন গ্রহণ করার জন্য খুব শীঘ্রই রেটিনার উন্নতি করা হবে যার ক্ষেত্রে আমরা কেবল এটির সাথে প্রতিস্থাপন করতে পারি , তবে এটি এখনও কার্যকর হয় না।212$*$#1$*$2

পরিবর্তে, আমরা বিজোড় সংখ্যাগুলি আলাদাভাবে পচন করি। এর সাথে নিখুঁত স্কোয়ারগুলির মিলের সহজ উদাহরণে ফিরে যাই (^1|11\1)+$। প্রতিবারে 1 টি\1 শুরু করা এবং প্রতিটি পুনরাবৃত্তিতে 2 দ্বারা বর্ধিত কাউন্টার থাকার পরিবর্তে আমাদের দুটি কাউন্টার থাকবে। একটিকে 0 থেকে আরম্ভ করা হয় এবং 1 টি আরম্ভ করা হয় 1 এবং এগুলি উভয়ই প্রতিটি পুনরাবৃত্তিতে 1 দ্বারা বাড়ানো হয়। সুতরাং আমরা মূলত বিজোড় সংখ্যা পচে থাকেন 2n + 1 টি মধ্যে (ঢ) + + (ঢ + 1 টি) । সুবিধাটি হ'ল আমরা একটি গ্রুপে এন দিয়ে শেষ করব । এর সর্বাধিক সরল আকারে, এটি দেখতে এমন দেখাচ্ছে:

((^|1\2)(^1|1\3))+$

কোথায় \2হয় এন এবং \3হয় এন + 1 টি । তবে, আমরা এই বিষয়টি আরও দক্ষতার সাথে লক্ষ্য করে দেখতে পারি যে একটি পুনরাবৃত্তির n + 1 পরবর্তী পুনরাবৃত্তির n এর সমান , তাই আমরা 1এখানে একটি সংরক্ষণ করতে পারি :

((^|\3)(^1|1\3))+$

1নিখুঁত বর্গ দ্বারা বিভক্ত ইনপুটগুলির সাথে মেলে না গিয়ে এখন আমাদের কেবল প্রাথমিক ফ্যাক্টরটি ব্যবহার করতে হবে:

((^|\3)(^(1+?)|\3\4))+$

এখন আমাদের যা করা দরকার তা হ'ল $3শেষের সাথে পুরো জিনিসটি প্রতিস্থাপন করা , যা প্রাথমিক ফ্যাক্টরটিকে ধাপের সংখ্যার চেয়ে অনেক বেশি পরিমাণে সঞ্চয় করে, যা ইনপুট থেকে স্কোয়ারের একটি ফ্যাক্টরকে ফেলে দেয়।

+স্কোয়ারের চেয়ে উচ্চতর ক্ষমতা থাকা ইনপুটগুলির জন্য অ্যাকাউন্টিং করার জন্য প্রোগ্রামের একেবারে শুরুতে এটি বারবার করা হয় ।


8

অক্টাভা, 27 বাইট

@(x)prod(unique(factor(x)))

অন্যান্য উত্তর হিসাবে অনুরূপ পদ্ধতির। পার্থক্যটি হ'ল: ফাংশনগুলির অনেক দীর্ঘ নাম রয়েছে। আমি বিশ্বাস করি কোড সত্যিই নিজেই ব্যাখ্যা করেছেন: লাগে prodএর uct uniqueমৌলিক factorএকটি সংখ্যা গুলি।


আপনি আমাকে 30 সেকেন্ডের মধ্যে নিনজ করেছেন :)
ক্রিটিক্সী লিথোস


7

ওল্ফ্রাম ভাষা, 29 28 বাইট 29

-1 @ মার্টিন এন্ডারকে ধন্যবাদ

Most[1##&@@FactorInteger@#]&

ব্যাখ্যা:

           FactorInteger@#    (*Get prime factorization as {{a,b},{c,d}}*)
     1##&@@                   (*Multiply list elements together, to get the product of the factors and the product of their exponents*)
Most[                     ]&  (*Take the first element*)

2
ঠিক বুঝতে পেরেছি এটি হ'ল গ্রেগমার্টিনের গাণিতিক উত্তর সম্পর্কে মন্তব্য, কেবল কম গোল্ফাই ...
স্কট মিলনার

খারাপ লাগবেন না, আমার কাছে এর চেয়েও কম গোলাপী উত্তর ছিলTimes@@(#&@@@FactorInteger@#)&
ইয়ান মিলার

Mostএটি একটি তালিকা হিসাবে ছেড়ে দেয়। Firstআপনার মানটি পাওয়া দরকার ।
ইয়ান মিলার

@ ইয়ানমিলার আমি বুঝতে পারি, তবে কেবলমাত্র একটি উপাদান দিয়ে একটি তালিকা ফিরে পাওয়া কম বাইটস। আমি ধরে নিয়েছি যে এটি ঠিক ছিল, যেহেতু এটি এখনও একটি যুক্তিসঙ্গত আউটপুট।
স্কট মিলনার

7

পাইথন , 37 বাইট

f=lambda n,r=1:1>>r**n%n or-~f(n,r+1)

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

এর বৃহত্তম স্কোয়ারফ্রি বিভাজক nহ'ল rসমস্ত nপ্রধান উপাদানগুলির সাথে সেই ক্ষুদ্রতম সংখ্যা । আমরা যত এই পরীক্ষা করতে পারবেন r**n%n==0, যেহেতু r**nকরতে nপ্রতিটি মৌলিক উত্পাদক কপি r, এবং দিয়ে বিভাজ্য nএকমাত্র যদি প্রতিটি n'র মৌলিক উত্পাদক প্রতিনিধিত্ব করা হয়।

1>>r**n%nসমতূল্য int(r**n%n==0)। যদি Trueআউটপুট 1 ব্যবহার করা যায় তবে এটি করতে 2 বাইট কম হয়।

f=lambda n,r=1:r**n%n<1or-~f(n,r+1)

6

গণিত , 40 বাইট

Times@@(Transpose@FactorInteger@#)[[1]]&

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


Times@@#&@@Transpose@FactorInteger@#&3 বাইট সাশ্রয় করে ( #&@@এটি স্ট্যান্ডার্ড ট্রিক [[1]]এবং এর মতো ক্ষেত্রে এটি প্রায়শই বন্ধনীতে কিছু অতিরিক্ত বাইট সংরক্ষণ করতে পারে)।
মার্টিন ইন্ডার

আপনি Threadপরিবর্তে ব্যবহার করতে পারেন TransposeTransposeগাণিতিকায় একটি 3-বাইট অপারেটরও রয়েছে , তবে আমি জানি না ম্যাথিক্স এটি সমর্থন করে কিনা।
মার্টিন ইন্ডার

6
#&@@(1##&@@FactorInteger@#)&Transposeসম্পূর্ণরূপে প্রয়োজন এড়ানো । ( 1##&@@শুধু Times@@ছদ্মবেশে, যা হল আদেশ পেয়ারে কাজ করে মহান মধ্যে FactorIntegerআর '#&@@নেই First@ছদ্মবেশে।)
গ্রেগ মার্টিন

@ গ্রেগমার্টিন এটি মূলত আপনার নিজস্ব সমাধান, আপনি যদি চান তবে এটি পোস্ট করতে নির্দ্বিধায়।
পাভেল

দেখে মনে হচ্ছে স্কট মিলনার এটি যেভাবেই পেয়েছে :)
গ্রেগ মার্টিন

5

এলিস , 4 বাইট

iDo@

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

ইনপুট এবং আউটপুট একটি অক্ষরের কোড পয়েন্ট হিসাবে দেওয়া হয় (সমস্ত বৈধ ইউনিকোড কোড পয়েন্টের জন্য কাজ করে)।

ব্যাখ্যা

ঠিক আছে, অ্যালিসের একটি অন্তর্নির্মিত রয়েছে Dযার সংজ্ঞাটি "হ্রাসপ্রাপ্ত মৌলিক উপাদানগুলি"। যে হিসাবে একটি মান কিছু দ্বারা বিভাজ্য হয়, যতদিন পি 2 একটি মৌলিক জন্য পি , ডিভাইড যে মান পি । এই চ্যালেঞ্জের জন্য ঠিক এটির কাজটিই ঘটে। বাকিটি কেবল ইনপুট, আউটপুট, প্রোগ্রামটি শেষ করে।

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


দুঃখের বিষয়টি হ'ল এমনকি একটি বিল্টিন সহ এটিও সবচেয়ে ছোট উত্তর নয়।
R

@ রিকার ওয়েল, কারণ অ্যালিস কোনও গল্ফ করার ভাষা নয় তাই এটির স্পষ্ট I / O এবং (যেহেতু এটি একটি 2D ভাষা) প্রোগ্রাম সমাপ্তির প্রয়োজন।
মার্টিন এন্ডার

হ্যাঁ, যদিও এখনও কিছুটা দু: খিত।
R

@ কনরও'ব্রায়েন আমাদের কেবল অন্য কোথাও এই আলোচনা ছিল, এবং কেবল তখনই বৈধ হবে যদি একা একা অপারেটর এমন একটি অভিব্যক্তি যা ফাংশনটির মূল্যায়ন করে (যা এখানে ফাংশন / অপারেটর প্রথম শ্রেণীর মান নয়) । কোডগল্ফ.মেটা.স্ট্যাকেক্সেঞ্জাওএ / এ
মার্টিন এন্ডার

@ কনরও'ব্রায়েন দুঃখিত যে এটি ছিল একচেটিয়া "আমরা"।
মার্টিন ইন্ডার





1

পাইথ, 8 6 বাইট

*F+1{P

* -২ বাইট @ লিক্যুনকে ধন্যবাদ জানায়

পাইথের তালিকার পণ্যগুলির জন্য অন্তর্নির্মিত থাকলে 3 হবে ...

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

*F+1{P
      Q     # Implicit input
     P      # Prime factors of the input
    {       # Deduplicate
  +1        # Prepend 1 to the list (for the case Q==1)
*F          # Fold * over the list

*F+1{Pপরিবর্তে আপনি ব্যবহার করতে পারেন ।
লিকি নুন

1

সি, 65 50 বাইট

প্রয়োজনীয়তা অপসারণ করার জন্য @ আরজান জোহানসেনকে ধন্যবাদ r। এটি এবং অন্যান্য কিছু নোংরা কৌশলগুলির জন্য ধন্যবাদ আমি 15 বাইট বন্ধ বন্ধ করতে সক্ষম হয়েছি!

d;f(n){for(d=1;d++<n;)n%(d*d)||(n/=d--);return n;}

whileগিয়েছে এবং প্রতিস্থাপিত হয় ||এবং সূচক টুইডলিং হয়। সব পাশাপাশি <=থাকা উচিত ছিল <

<=পরিণত <বৃদ্ধি চলন্ত পেতে দ্বারা n%(++d*d)(ভাল অপারেটর প্রাধান্য কারণে সংজ্ঞায়িত করা উচিত)।


আসল কোড:

d;r;f(n){for(r=d=1;d++<=n;)while(n%d<1)r*=r%d?d:1,n/=d;return r;}

আমি মনে করি আপনি এটি সরিয়ে rএবং পরিবর্তে ব্যবহার করে এটি সংক্ষিপ্ত করতে পারবেন while(n%(d*d)<1)n/=d;
janrjan জোহানসেন

@ JanrjanJohansen ঠিক মনে হচ্ছে। আমি হ্রাসের চেয়ে নির্মাণের কথা ভাবছিলাম। আমার যুক্ত করার জন্য কিছু অতিরিক্ত উন্নতি রয়েছে, শীঘ্রই আপডেট হবে।
অ্যালগমির

++d*dএকেবারে হয় না ভাল সি মান দ্বারা সংজ্ঞায়িত - এটা স্পষ্টভাবে undefined আচরণের একটি ক্লাসিক কেস। তবে আমরা যাইহোক, এখানে বাস্তবায়ন দ্বারা যাচ্ছি।
janর্জন জোহানসেন

আসলে, d++<nভাল যা সংজ্ঞায়িত, এখনও কাজ করা উচিত নয় ? আমি মনে করি পুরানো সংস্করণটি সর্বদাই চলে গেছে n+1(নিরীহভাবে)।
janrjan জোহানসেন

আপনি সম্ভবত অপরিবর্তিত আচরণ সম্পর্কে সঠিক। কিছু কারণে আমি ভেবেছিলাম যে অপারেটর অগ্রাধিকার এটি সমাধান করবে। বেশিরভাগ উদাহরণ যা আমি ইউবিকে দেখেছি একই অগ্রাধিকার অপারেটরগুলি ব্যবহার করে, তবে অবশ্যই এখানেও একটি ডেটা রেস রয়েছে। আপনি d++<nসঠিক হওয়ার বিষয়েও সঠিক, কোনও কারণে আমি কোডটি পুনরায় লেখার সময় দেখিনি।
অ্যালগমির

0

অ্যাক্সিয়োম, 89 বাইট

f(x:PI):PI==(x=1=>1;g:=factor x;reduce(*,[nthFactor(g,i) for i in 1..numberOfFactors g]))

পরীক্ষা এবং ফলাফল

(38) -> [[i, f(i)] for i in 1..30 ]
   (38)
   [[1,1], [2,2], [3,3], [4,2], [5,5], [6,6], [7,7], [8,2], [9,3], [10,10],
    [11,11], [12,6], [13,13], [14,14], [15,15], [16,2], [17,17], [18,6],
    [19,19], [20,10], [21,21], [22,22], [23,23], [24,6], [25,5], [26,26],
    [27,3], [28,14], [29,29], [30,30]]

এটি হ'ল ব্যবহারযোগ্য ফ্যাক্টর () ফাংশন

g(x:PI):PI==(w:=sqrt(x);r:=i:=1;repeat(i:=i+1;i>w or x<2=>break;x rem i=0=>(r:=r*i;repeat(x rem i=0=>(x:=x quo i);break)));r)

তবে এটি মাত্র 125 বাইট


0

আর, 52 বাইট

`if`((n=scan())<2,1,prod(unique(c(1,gmp::factorize(n))))

স্টাডিন nথেকে পড়া । প্রয়োজন gmp(তাই Tio কাজ হবে না) গ্রন্থাগার ইনস্টল করার জন্য। উপরের উত্তরগুলির অনেকের মতো একই পন্থা ব্যবহার করে তবে এটি একটি ইনপুটটিতে ক্র্যাশ হয়ে যায় 1, কারণ factorize(1)ক্লাসের একটি খালি ভেক্টর ফিরে আসে bigz, যা uniqueহতাশ।


এই আউটপুট 12 যখন আমি ইনপুট 12.
Flounderer

@ ফ্লাউন্ডারিয়ার আপনি সঠিক, আমি কোড আপডেট করেছি।
: Giuseppe



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