ইউলারের ফ্রন্ট 9


11

 

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

সুতরাং, এমন একটি প্রোগ্রাম লিখুন যা প্রথম 9 সমস্যার কোনও প্রাইরি জ্ঞান ব্যবহার না করে সমাধান করে ।

  1. সমস্যাটি ব্যবহারকারী দ্বারা নির্বাচিত হয়, ASCII '1' এর মাধ্যমে '9' এর মাধ্যমে, কল করার সময় বা আন্ডার স্ট্যান্ডার্ড ইনপুট চলাকালীন যুক্তির মাধ্যমে lusive (আপনি সমস্ত উত্তর গণনা করতে পারেন, তবে কেবল একটিই দেখান))
  2. সঠিক উত্তরটি ASCII ব্যবহার করে, বেস 10 এ, একটি নতুন লাইনে মুদ্রিত করতে হবে।
  3. প্রোগ্রামগুলি এক মিনিটেরও কম সময়ে কার্যকর করা উচিত (পিই পরামর্শ)।
  4. "কোন কসম অবরোহমার্গী জ্ঞান", আমি বলতে চাচ্ছি আপনার কোড বৈদেশিক সম্পদ ছাড়া উত্তর আহরণ আবশ্যক । এর মতো একটি প্রোগ্রামকে অবৈধ হিসাবে বিবেচনা করা হবে (অন্যথায় সঠিক হলেও, ধরে নিবেন যে আমি টাইপ করিনি):

    print[233168,4613732,6857,906609,232792560,25164150,104743,40824,31875000][input()-1]
    

    সমস্যা # 8 জন্য (ক 1000-সংখ্যার নম্বর জড়িত থাকে), আপনি একটি বহিস্থিত ফাইল থেকে সংখ্যা পড়তে পারেন, শুধু আপনার উত্তর পোস্টে উল্লেখ কিভাবে এটি সঞ্চিত (যেমন বাইনারি, টেক্সট, হেডার, আমদানিকৃত মডিউল) এবং / অথবা অন্তর্ভুক্ত করে ( মূল প্রোগ্রামটির দৈর্ঘ্যের দিকে গণনা করে না)।

  5. স্কোর বাইট দ্বারা হয়।

  6. পনেরো ইউনিকর্ন পয়েন্টস 2 2 সপ্তাহ পরে বাইট-কাউন্ট লিডারকে প্রদান করা।

উত্তর:


4

পাইথন, 505

import f
A,B,C,D=map(range,[22,1000,101,500])
R=reduce
M=int.__mul__
a=x=0
b=1
n=2
p=[]
while b<=4e6:a,b=b,a+b;x+=b*(b%2<1)
while len(p)<=1e4:p+=[n]*all(n%i for i in p);n+=1
q=y=R(M,p[:8])
while any(y%(i+1)for i in A):y+=q
print[
    sum(i for i in B if i%3*(i%5)<1),
    x,
    max(i for i in p if 600851475143%i<1),
    max(a*b for a in B for b in B if`a*b`==`a*b`[::-1]),
    y,
    sum(C)**2-sum(i**2for i in C),
    p[-1],
    max(R(M,map(int,f.s[i:i+5]))for i in B),
    [a*b*(1000-a-b)for a in D for b in D if(a+b)*1e3==5e5+a*b][0]
][input()-1]

পাঠযোগ্যতার জন্য সাদা লাইনে শেষ লাইনে যুক্ত করা হয়েছে। 1000-অঙ্কের নম্বরটি একটি মডিউলটি রেখাযুক্ত নাম থেকে আমদানি করা হয় f.py:

s="7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450"

3

জাভাস্ক্রিপ্ট

সমাধান: 1785 অক্ষর

নোডজেএস দিয়ে কোড চালাও

সমস্যা 7 নোট: অ্যালগরিদম ঠিক আছে, তবে এটি একটি মুহুর্ত লাগে! কারও যদি আরও দক্ষ সমাধান হয় ...

z=process.argv[2]
y=console.log
if(z==1){b=0;for(i=1e3;i--;)if(i%3<1||i%5<1)b+=i;y(b)}
if(z==2){d=e=1;f=0;while(e<=4e6)g=d+e,d=e,e=g,f+=e%2<1?e:0;y(f)}
if(z==3){e=Math.sqrt(d=600851475143)|0+1;f=2;while(f<e){g=d/f;if(g==(g|0))h=f,d=g;f+=f==2?1:2}y(h)}
if(z==4){for(a=b=100,c=0;a+b<1998;){d=a++*b;if(d==(""+d).split("").reverse().join("")&&d>c)c=d;if(a>999)a=b+1,b++}y(c)}
if(z==5){for(a=c=1;c;){for(b=20;b>1;)a%b>0?b=0:b--;b==1?c=0:a++}y(a)}
if(z==6){for(a=100,b=Math.pow(a*(a+1)/2,2),d=a+1;d--;)b-=d*d;y(b)}
if(z==7){for(a=3,c=d=0;c<1e4;){for(b=a;b>2;){b=b>3?b-2:2;if(a%b<1)b=0}if(b>0)c++,d=a;a=a+2}y(d)}
if(z==8){a="7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450";for(e=0,b=996;b--;){d=eval(a.substr(b,5).split("").join("*"));if(d>e)e=d};y(e)}
if(z==9){for(a=b=0;(c=a+b+Math.sqrt(a*a+b*b))!=1e3;)if(++a==500)a=0,b++;y(a,b,c-b-a)}

সমস্যা 1: 39 অক্ষর

b=0;for(i=1e3;i--;)if(i%3<1||i%5<1)b+=i

সমস্যা 2: 49 অক্ষর

d=e=1;f=0;while(e<=4e6)g=d+e,d=e,e=g,f+=e%2<1?e:0

সমস্যা 3: 85 অক্ষর

e=Math.sqrt(d=600851475143)|0+1;f=2;while(f<e){g=d/f;if(g==(g|0))h=f,d=g;f+=f==2?1:2}

সমস্যা 4: 105 অক্ষর

for(a=b=100,c=0;a+b<1998;){d=a++*b;if(d==(""+d).split("").reverse().join("")&&d>c)c=d;if(a>999)a=b+1,b++}

সমস্যা 5: 55 অক্ষর

for(a=c=1;c;){for(b=20;b>1;)a%b>0?b=0:b--;b==1?c=0:a++}

সমস্যা 6: 51 অক্ষর

for(a=100,b=Math.pow(a*(a+1)/2,2),d=a+1;d--;)b-=d*d

সমস্যা 7: 82 অক্ষর

for(a=3,c=d=0;c<1e4;){for(b=a;b>2;){b=b>3?b-2:2;if(a%b<1)b=0}if(b>0)c++,d=a;a=a+2}

সমস্যা 8: 1078 অক্ষর ^ _ ^ ^

a="7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450"
for(e=0,b=996;b--;){d=eval(a.substr(b,5).split("").join("*"));if(d>e)e=d}

সমস্যা 9: 58 অক্ষর

for(a=b=0;a+b+Math.sqrt(a*a+b*b)!=1e3;)if(++a==500)a=0,b++

if(i%3<1||i%5<1)a+=iখাটো! :)
মাইকেল এম

সংক্ষিপ্ত সমস্যা 3:e=Math.sqrt(d=600851475143)|0+1;f=2;while(f<e){g=d/f;if(g==g|0)h=f,d=g;f+=f==2?1:2}
ফ্লোরেন্ট

সংক্ষিপ্ত সমস্যা 4:for(a=b=100,c=0;a+b<1998;){d=a++*b;if(d==(""+d).split("").reverse().join("")&&d>c)c=d;if(a>999)a=b+1,b++}
ফ্লোরেন্ট

@ ফ্লোরেন্ট: সমস্যা 3 g==g|0কাজ g|0করবে না প্রথম বন্ধনী
777

1
@ ফ্লোরেন্ট: সমাধানটি পরিবর্তনশীল h, স্ক্রিপ্ট দ্বারা ফেরানো মান নয়
777

1

আর 684 টি অক্ষর

f=function(N){r=rowSums;p=function(x,y)r(!outer(x,y,`%%`));S=sum;x=c(1,1);n=600851475143;a=900:999;b=20;c=1:100;m=2:sqrt(n);M=m[!n%%m];A=a%o%a;d=3;P=2;z=1:1e3;Z=expand.grid(z,z);Y=cbind(Z,sqrt(r(Z^2)));W=gsub("\n","",xpathApply(htmlParse("http://projecteuler.net/problem=8"),"//p",xmlValue)[[2]]);switch(N,S(which(p(1:999,c(3,5))>0)),{while(tail(x,1)<4e6)x=c(x,S(tail(x,2)));S(x[!x%%2])},max(M[p(M,M)<2]),max(A[sapply(strsplit(c(A,""),""),function(x)all(x==rev(x)))],na.rm=T),{while(any(b%%1:20>0))b=b+20;b},S(c)^2-S(c^2),{while(P<=1e4){d=d+2;if(sum(!d%%2:d)<2)P=P+1};d},max(sapply(5:nchar(W),function(i)prod(as.integer(strsplit(substr(W,i-4,i),"")[[1]])))),prod(Y[r(Y)==1000,][1,]))}

ইন্ডেন্টযুক্ত:

f=function(N){
    r=rowSums
    p=function(x,y)r(!outer(x,y,`%%`))
    S=sum
    x=c(1,1)
    n=600851475143
    a=900:999
    b=20
    c=1:100
    m=2:sqrt(n)
    M=m[!n%%m]
    A=a%o%a
    d=3
    P=2
    z=1:1e3
    Z=expand.grid(z,z)
    Y=cbind(Z,sqrt(r(Z^2)))
    W=gsub("\n","",xpathApply(htmlParse("http://projecteuler.net/problem=8"),"//p",xmlValue)[[2]])
    switch(N,S(which(p(1:999,c(3,5))>0)),
             {while(tail(x,1)<4e6)x=c(x,S(tail(x,2)));S(x[!x%%2])},
             max(M[p(M,M)<2]),
             max(A[sapply(strsplit(c(A,""),""),function(x)all(x==rev(x)))],na.rm=T),
             {while(any(b%%1:20>0))b=b+20;b},
             S(c)^2-S(c^2),
             {while(P<=1e4){d=d+2;if(sum(!d%%2:d)<2)P=P+1};d},
             max(sapply(5:nchar(W),function(i)prod(as.integer(strsplit(substr(W,i-4,i),"")[[1]])))),
             prod(Y[r(Y)==1000,][1,]))
    }

ব্যবহার:

> f(1)
[1] 233168
> f(2)
[1] 4613732
> f(3)
[1] 6857
> f(4)
[1] 906609
> f(5)
[1] 232792560
> f(6)
[1] 25164150
> f(7)
[1] 104743
> f(8)
[1] 40824
> f(9)
[1] 31875000

আলাদাভাবে:

1: 48 অক্ষর sum(which(rowSums(!outer(1:999,c(3,5),`%%`))>0))

2: 64 অক্ষর x=c(1,1);while(tail(x,1)<4e6)x=c(x,sum(tail(x,2)));sum(x[!x%%2])

3: 73 অক্ষর n=600851475143;m=2:sqrt(n);M=m[!n%%m];max(M[rowSums(!outer(M,M,`%%`))<2])

4: 88 অক্ষর a=900:999;b=a%o%a;max(b[sapply(strsplit(c(b,""),""),function(x)all(x==rev(x)))],na.rm=T)

5: 34 অক্ষর a=20;while(any(a%%1:20>0))a=a+20;a

6: 25 অক্ষর a=1:100;sum(a)^2-sum(a^2)

7: 54 অক্ষর d=3;P=2;while(P<=1e4){d=d+2;if(sum(!d%%2:d)<2)P=P+1};d

8: 181 অক্ষর

প্রথম লাইনটি প্রকল্পের ইউলারের ওয়েবসাইট থেকে নম্বরটি পড়ে, দ্বিতীয় লাইনটি প্রকৃতপক্ষে গণনা সম্পাদন করে।

W=gsub("\n","",xpathApply(htmlParse("http://projecteuler.net/problem=8"),"//p",xmlValue)[[2]])
max(sapply(5:nchar(W),function(i)prod(as.integer(strsplit(substr(W,i-4,i),"")[[1]]))))

9: 87 অক্ষর z=1:1e3;Z=expand.grid(z,z);Y=cbind(Z,sqrt(rowSums(Z^2)));prod(Y[rowSums(Y)==1000,][1,])


এখন হিসাবে, f(7)গণনা করতে 2 মিনিট সময় নেয় তাই এটি কার্যকরভাবে সময় সীমাবদ্ধতার সাথে মেনে চলে না। আমি এ নিয়ে কাজ করার চেষ্টা করব। ( f(5)আমার মেশিনে
48 বার

1

245 236 232

load'n'
echo".>(<:".1!:1]1){<;._1'!+/I.+./0=5 3|,:~i.1e3!+/}:(],4&*@:{:+_2&{)^:(4e6>{:)^:_]0 2!{:q:600851475143!>./(#~(-:|.)@":"0),/*/~i.1e3!*./>:i.20!(([:*:+/)-[:+/*:)i.101!p:1e4!>./5*/\"."0 n!x:*/{.(#~1e3=+/"1)(+.,|)"0,j./~i.500'

n নিম্নলিখিত ফাইলগুলি অন্তর্ভুক্ত:

n=:'7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450'

0

টিআই-বেসিক (কাজ চলছে)

আপনার টিআই -83 বা টিআই -84 ক্যালকুলেটরটির জন্য

প্রধান প্রোগ্রাম, 15 বাইট :

Input X:OpenLib(1):X:ExecLib:Disp Ans

লাইব্রেরী 1 ( 4 বাইট ) না বাইট মোট সংখ্যা দিকে গণনা:

L1(Ans

তারপরে, আমাদের # 1 তালিকা রয়েছে:

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