Javascript
Lösung: 1785 Zeichen
Code mit nodeJS ausführen
Hinweis zu Problem 7: Algorithmus ist in Ordnung, aber es dauert einen Moment! Wenn jemand eine effizientere Lösung hat ...
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)}
Problem 1: 39 Zeichen
b=0;for(i=1e3;i--;)if(i%3<1||i%5<1)b+=i
Problem 2: 49 Zeichen
d=e=1;f=0;while(e<=4e6)g=d+e,d=e,e=g,f+=e%2<1?e:0
Problem 3: 85 Zeichen
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}
Problem 4: 105 Zeichen
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++}
Problem 5: 55 Zeichen
for(a=c=1;c;){for(b=20;b>1;)a%b>0?b=0:b--;b==1?c=0:a++}
Problem 6: 51 Zeichen
for(a=100,b=Math.pow(a*(a+1)/2,2),d=a+1;d--;)b-=d*d
Problem 7: 82 Zeichen
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}
Problem 8: 1078 Zeichen ^ _ ^
a="7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450"
for(e=0,b=996;b--;){d=eval(a.substr(b,5).split("").join("*"));if(d>e)e=d}
Problem 9: 58 Zeichen
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
ist kürzer! :)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}
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++}
g==g|0
funktioniert nichtg|0
muss in Klammern stehenh
, nicht der vom Skript zurückgegebene WertR 684 Zeichen
Eingerückt:
Verwendung:
Separat:
1: 48 Zeichen
sum(which(rowSums(!outer(1:999,c(3,5),`%%`))>0))
2: 64 Zeichen
x=c(1,1);while(tail(x,1)<4e6)x=c(x,sum(tail(x,2)));sum(x[!x%%2])
3: 73 Zeichen
n=600851475143;m=2:sqrt(n);M=m[!n%%m];max(M[rowSums(!outer(M,M,`%%`))<2])
4: 88 Zeichen
a=900:999;b=a%o%a;max(b[sapply(strsplit(c(b,""),""),function(x)all(x==rev(x)))],na.rm=T)
5: 34 Zeichen
a=20;while(any(a%%1:20>0))a=a+20;a
6: 25 Zeichen
a=1:100;sum(a)^2-sum(a^2)
7: 54 Zeichen
d=3;P=2;while(P<=1e4){d=d+2;if(sum(!d%%2:d)<2)P=P+1};d
8: 181 Zeichen
In der ersten Zeile wird die Nummer von der Projekt-Euler-Website gelesen, in der zweiten Zeile wird die Berechnung tatsächlich durchgeführt.
9: 87 Zeichen
z=1:1e3;Z=expand.grid(z,z);Y=cbind(Z,sqrt(rowSums(Z^2)));prod(Y[rowSums(Y)==1000,][1,])
quelle
f(7)
Berechnung dauert ab sofort 2 Minuten, sodass die Ausführungszeitbeschränkung nicht wirklich eingehalten wird. Ich werde versuchen, daran zu arbeiten. (f(5)
dauert 48s auf meiner Maschine)J
245236232n ist eine Datei, die Folgendes enthält:
quelle
TI-BASIC (Work in Progress)
Für Ihren TI-83- oder TI-84-Rechner
Hauptprogramm, 15 Bytes :
Bibliothek 1 ( 4 Bytes ) tut Zählung in Richtung auf die Gesamtzahl der Bytes:
Dann haben wir Liste # 1:
quelle