Data update
This commit is contained in:
parent
ed705008a8
commit
0df55f9f24
2196 changed files with 32999 additions and 3075 deletions
38
Task/Yellowstone-sequence/EasyLang/yellowstone-sequence.easy
Normal file
38
Task/Yellowstone-sequence/EasyLang/yellowstone-sequence.easy
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
func gcd a b .
|
||||
if b = 0
|
||||
return a
|
||||
.
|
||||
return gcd b (a mod b)
|
||||
.
|
||||
proc remove_at i . a[] .
|
||||
for j = i + 1 to len a[]
|
||||
a[j - 1] = a[j]
|
||||
.
|
||||
len a[] -1
|
||||
.
|
||||
proc yellowstone count . yellow[] .
|
||||
yellow[] = [ 1 2 3 ]
|
||||
num = 4
|
||||
while len yellow[] < count
|
||||
for i to len notyellow[]
|
||||
test = notyellow[i]
|
||||
if gcd yellow[-2] test > 1 and gcd yellow[-1] test = 1
|
||||
break 1
|
||||
.
|
||||
.
|
||||
if i <= len notyellow[]
|
||||
yellow[] &= notyellow[i]
|
||||
remove_at i notyellow[]
|
||||
else
|
||||
while gcd yellow[-2] num <= 1 or gcd yellow[-1] num <> 1
|
||||
notyellow[] &= num
|
||||
num += 1
|
||||
.
|
||||
yellow[] &= num
|
||||
num += 1
|
||||
.
|
||||
.
|
||||
.
|
||||
print "First 30 values in the yellowstone sequence:"
|
||||
yellowstone 30 yellow[]
|
||||
print yellow[]
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
yellowstone(n) = {
|
||||
my(a=3, o=2, u=[]);
|
||||
if(n<3, return(n)); \\ Base case: return n if it is less than 3
|
||||
print1("1, 2"); \\ Print initial values
|
||||
|
||||
for(i = 4, n, \\ Iterate from 4 to n
|
||||
print1(", "a); \\ Print current value of a
|
||||
u = setunion(u, Set(a)); \\ Add a to the set u
|
||||
|
||||
\\ Remove consecutive elements from u
|
||||
while(#u > 1 && u[2] == u[1] + 1,
|
||||
u = vecextract(u, "^1")
|
||||
);
|
||||
|
||||
\\ Find next value of a
|
||||
for(k = u[1] + 1, 1e10,
|
||||
if(gcd(k, o) <= 1, next); \\ Skip if gcd(k, o) is greater than 1
|
||||
if(setsearch(u, k), next); \\ Skip if k is in set u
|
||||
if(gcd(k, a) != 1, next); \\ Skip if gcd(k, a) is not 1
|
||||
o = a; \\ Update o to current a
|
||||
a = k; \\ Update a to k
|
||||
break
|
||||
)
|
||||
);
|
||||
|
||||
a \\ Return the final value of a
|
||||
}
|
||||
|
||||
yellowstone(20); \\ Call the function with n = 20
|
||||
42
Task/Yellowstone-sequence/Scala/yellowstone-sequence.scala
Normal file
42
Task/Yellowstone-sequence/Scala/yellowstone-sequence.scala
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
import scala.util.control.Breaks._
|
||||
|
||||
|
||||
object YellowstoneSequence extends App {
|
||||
|
||||
println(s"First 30 values in the yellowstone sequence:\n${yellowstoneSequence(30)}")
|
||||
|
||||
def yellowstoneSequence(sequenceCount: Int): List[Int] = {
|
||||
var yellowstoneList = List(1, 2, 3)
|
||||
var num = 4
|
||||
var notYellowstoneList = List[Int]()
|
||||
|
||||
while (yellowstoneList.size < sequenceCount) {
|
||||
val foundIndex = notYellowstoneList.indexWhere(test =>
|
||||
gcd(yellowstoneList(yellowstoneList.size - 2), test) > 1 &&
|
||||
gcd(yellowstoneList.last, test) == 1
|
||||
)
|
||||
|
||||
if (foundIndex >= 0) {
|
||||
yellowstoneList = yellowstoneList :+ notYellowstoneList(foundIndex)
|
||||
notYellowstoneList = notYellowstoneList.patch(foundIndex, Nil, 1)
|
||||
} else {
|
||||
breakable({
|
||||
while (true) {
|
||||
if (gcd(yellowstoneList(yellowstoneList.size - 2), num) > 1 &&
|
||||
gcd(yellowstoneList.last, num) == 1) {
|
||||
yellowstoneList = yellowstoneList :+ num
|
||||
num += 1
|
||||
// break the inner while loop
|
||||
break
|
||||
}
|
||||
notYellowstoneList = notYellowstoneList :+ num
|
||||
num += 1
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
yellowstoneList
|
||||
}
|
||||
|
||||
def gcd(a: Int, b: Int): Int = if (b == 0) a else gcd(b, a % b)
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import "/math" for Int
|
||||
import "./math" for Int
|
||||
|
||||
var yellowstone = Fn.new { |n|
|
||||
var m = {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue