5 kyu

Product of consecutive Fib numbers

1,787 of 69,077g964
Description
Loading description...
Algorithms
Mathematics
  • Please sign in or sign up to leave a comment.
  • d78mdd Avatar

    For C# method name productFib should start with capital letter - ProductFib.

  • its-namami Avatar

    Naah this was wayy to fun I just forgot once that functions cant be inside other functions lol but other than that I found it very intriguing. I also didnt really understand what was wanted from be but I found what they meant in the questions section.

  • dertho Avatar

    For Python, just a suggestion: the description looks like returing a 3-tuple is expected (having the round brackets: "(21, 34, true)"), and having different types for the elements underlines that. But the tests expect a list with 3 elements. Maybe we should change the description to square brackets?

  • testqcqaweb Avatar

    Why in description there is nothing about final result in list?

  • ddx1 Avatar

    good, but not 5 kyu, maybe 6

  • Giga Chad Gogeta Avatar

    umm... why am i asked to put a boolean true or false into a unsigned long long vector i thought that isn't allowed ???

  • okraus Avatar

    Please change the details description so that F(0) = 0, the F(0)=1, F(1)=1 is highly confusing!

  • vit_trakh Avatar

    My code doesn't pass test $this->revTest(productFib(5895), [89, 144, false]); But 89 * 144 = 12816, not 5895... My answer is [45, 131, false], 45 * 131 = 5895. May be I didn't get requirements clear? Or this is a bug in the test?

  • TM0153 Avatar

    This comment has been hidden.

  • MrSudayon Avatar

    Im sorry, I didn't get the problem. can someone elaborate to me more clearly?

  • sylentdood Avatar

    fun lil problem, nice iterative solution

  • pollosatyi Avatar

    I can't understand the conditions. The tests pass and the rest does not. Can you explain?

  • serg141 Avatar

    Test 12 fails with the error arrays first differed at element [0]; expected:<1836311903> but was:<4167823282> Is there a correct check there?

  • slenderguy1456 Avatar

    *** F(n) being the smallest one such as F(n) * F(n+1) > prod. *** Silly me! My previous solution didn't notice this line of instruction. Be careful!

  • sorceror8 Avatar

    For C/C++, there should at least be a test case where prod is so big that the value of Fib(n) * Fib(n+1) overflows the unsigned long long. It's an unincluded edge case.

  • trashy_incel Avatar

    C fork

    • initial solution does not crash anymore
    • it is explained what kind of pointer to return
    • better assertion messages
  • MDB-sys Avatar

    i got error in javascript

    TypeError: assert.sameOrderedMezmbers is not a function at Context. (test.js:43:12) at process.processImmediate (node:internal/timers:471:21

    is it error from kata or not??

    const { assert } = require('chai');

    describe("Tests", () => { it("test", () => { assert.sameOrderedMembers(productFib(4895), [55, 89, true]) .....

  • Andrey2236 Avatar

    when solving a java problem, I encounter a problem whose array was initially different in element [1]; expected:<2971215073>, but it was:<1>, although the long type 2971215073 is not suitable. can I remember the type of the returned value?

  • saudiGuy Avatar

    python new test framework is required. updated in this fork

  • Petreon Avatar

    this kata is very interesting, i built my own fibonnaci formula inside my answer but, some people had a way to do this with simple math i didnt undertood how this work, but since my goal inst math but programming, so i think my answer is valid

  • firesword3 Avatar

    should this really be 5 kyu? Maybe 6 kyu is a more suitable rank

  • mantuu Avatar

    Test keeps telling: arrays first differed at element [0]; expected:<55> but was:<1836311903> It works correct on my machine. Any ideas? (java)

  • dmon305 Avatar

    This comment has been hidden.

  • rsschool_443bd6bc3498d71f Avatar

    return kata.sensei === 'g964' ? skip : train;

  • sillysausage Avatar

    This comment has been hidden.

  • R.Daneel.Olivaw Avatar

    Great, Thanks!

  • ejini战神 Avatar

    C#: method name should be PascalCase (Please refer to implementation of backward compatibility here )

  • dgwon Avatar

    This is a classic problem that can be solved using recursion and I think one of those solutions should be highlighted.

  • King60086008 Avatar

    This comment has been hidden.

  • VojtechBrezina Avatar

    This comment has been hidden.

  • TekitPRO Avatar

    am i learning to code or how to do math

  • whuzar Avatar

    I have a problem with that test: arrays first differed at element [0]; expected:<1836311903> but was:<-2133083224>

    This test shouldn't even exist

  • maisunmonowar Avatar

    Hint: Recursive functions are slow as more recursion occours.

  • Tefa11 Avatar

    My returned values are correct and yet the test and attempt both fail.

    return f"[{Fib[i]}, {Fib[i+1]}, True]" Is there something wrong with my return line?

  • ElMasi Avatar

    This kata finally got me to understand the technique were you "remember" values and can't explicitly quote to not give away the solution. Great kata!

  • monkey_on_a_keyboard_1 Avatar

    I thought there were performance tests for speed...lol guess not then

  • laurelis24 Avatar

    My advice don't look at details. Look at test cases.

  • NilAtabey Avatar

    TIP: Try not storing the fibonacci series.

  • Beefy1 Avatar

    Should be a 6 kyu kata in my opinion.

  • IsaacTWs Avatar

    Add check for zero test case {0, 1, true}, although trivial, you could create a solution that ignores this possibility and still pass.

  • jenThepilot Avatar

    The description should be updated with the comment made by @post-rex.

  • hobovsky Avatar

    Update JS tests to Node 14.

  • OmiMaHomie Avatar

    This comment has been hidden.

  • OmiMaHomie Avatar

    This comment has been hidden.

  • tejush_singh Avatar

    This comment has been hidden.

  • SebProgJu Avatar

    This comment has been hidden.

  • alexdewalt Avatar

    Man the directions on this were so confusing. I spent a long time trying to figure it out and then looked at the test cases and realized I wasn't trying to find factors of prod that were fib numbers and returning if they were consecutive of each other or not. Once I read the comment by a random user that clarified what the directions were I got it almost right away.

  • KayleighWasTaken Avatar

    Update to Scala 3

    Also adds some edge case testing which was missing before.

  • jamal05 Avatar

    I think it's 6kyu at least. It's very easy.

  • user3730142 Avatar

    This comment has been hidden.

  • AlexKomr Avatar

    Time: 795ms Passed: 28 Failed: 3 Exit Code: 1 28 test passed and 3 failded. I dont understand what wrong?

  • akar-0 Avatar
  • tri@ Avatar
  • expl1cl9t Avatar

    This comment has been hidden.

  • Sketchylandbeast Avatar

    So, I have read through the issues section on this Kata, so it would be pointless for me to bring up the same things so many others have brought up because it doesn't seem to be making any sense to the individuals in charge of change with this kata. So instead, I'll try this way. In the kata description there is no way to know to what extent the program needs to run the product. What I mean is that there is no statement of "Your code needs to be able to run x number of digits in the input." It would help prepare people to know they need to be efficient rather than having it sprung on them after working hard to come up with a solution. I hope this helps, and thank you for this kata. It was a lot of fun to work on.

  • Swag_Legend Avatar

    got it finally ; )

  • ashishkag Avatar

    This comment has been hidden.

  • Ikromov247 Avatar

    This comment has been hidden.

  • RyanSWest Avatar

    Well, can do true, instructions are kind of vague in the false case

  • Retamogordo Avatar

    This comment has been hidden.

  • elboj Avatar

    This comment has been hidden.

  • meandthecode Avatar

    This comment has been hidden.

  • FilipKovac Avatar

    Hello, I believe it is a terrible practice to return an array, which consists of multiple types. For example in python, the arguments should be typed - I believe it would be much better if the function returned a Tuple[int, int, bool]

  • akar-0 Avatar
  • alexbond008 Avatar

    So my code runs and executes in 500ms but when I attempt soltion I get an execution timeout( exeeded 12000ms ). I have no idea what the issue could be. My algorithm complexity is not the best but .... I dunno what to do.

  • post-rex Avatar

    This comment has been hidden.

  • sachinkhatri Avatar

    It is the description which is making this problem seem harder than it really is. The authors may need to revisit and define it properly.

  • dummyaccount Avatar

    This comment has been hidden.

  • John Calimoso  Avatar

    This comment has been hidden.

  • Benedicto Avatar

    This comment has been hidden.

  • KostoFranca Avatar

    This comment has been hidden.

  • GreenbergKU Avatar

    (Swift) passing all test cases, but when I attempt, I get this error: "XCTAssertTrue failed -" but does not tell me what that "..." does not equal "..." I have no hints as to what is making this fail!

  • sundeep.r3 Avatar

    This comment has been hidden.

  • Sullywas Avatar

    Hello guys, I ma having this issue: "Passed: 30 Failed: 1 Exit Code: 1" Is there any special test case I need to consider in my code?

  • cub8 Avatar

    Felt overwhelmed after reading description, but this kata turned to be much easier than expected :) Good one, however I think difficulty rank should be actually around 6 kyu.

  • Chrono79 Avatar

    If you don't find two consecutive F(m) verifying F(m) * F(m+1) = prod you will return

    [F(m), F(m+1), false] or {F(n), F(n+1), 0} or (F(n), F(n+1), False)

    F(m) being the smallest one such as F(m) * F(m+1) > prod.

    Why the change from n to m there?

  • ArpadGBondor Avatar

    This comment has been hidden.

  • micheal11 Avatar

    This comment has been hidden.

  • tetris555  Avatar

    I wonder whether '0' should be treated like isolated case. I stuck there, else all tests passed. I guess not the optimal solution.

  • Mohrezakhorasany Avatar

    Thanks for the Kata, it was fun :)

  • oleksiiB Avatar

    It turned out to be easier than I thought

  • maksvet Avatar

    Locally JavaScript code works fine (using loop). Test results (console.logged) show some erratic calculations. Checking them locally : code works fine and gives a right answer. Puzzled.

  • grokestray Avatar

    This comment has been hidden.

  • chucky-1 Avatar

    It is much easier than usual for 5 kyu

  • Ev.Y Avatar

    None should equal [0,1,True].Dose it means when prod==None, it should return [0,1,True]. However, when I code like this: if prod == None: return [0,1,True] it cannot pass the test.

  • IdrisLokhande Avatar

    Excuse me but how could you possibly imagine to put a boolean value such as true or false in a long array??!

  • mikeylikesit Avatar

    Good problem. Reminds me of some of the project Euler problems.

    However, it would be really nice to have more "typescripty" typescript requirements instead of just copy/pasting the javascript problem and labeling it typescript. I wouldn't have said anything, but I've now encountered a handful of "typescript" problems that are really just javascript and the available typescript versions are several major versions behind. I realize typescript is just javascript... but the whole point of typescript is to make people write better javascript. It's great that it still allows vanilla javascript, but the unfortunate result is that people aren't getting the advantages of typescript.

    A concrete example for an issue that could be improved would be how we're returning multiple values of different types from a function, which is a bad practice. If you must do that, create a class for the return type. Or if you're unwilling to do the extra work (though it's not that much work), you could use the project Euler approach and expect an answer that is some composite or computed single value. I just created a codewars account and the intro suggested that people are trying to end up with production quality code, but problem requirements like this force bad practices.

  • fpineda3105 Avatar

    I'm getting Failed at one test and I don't know why, the Test Case #12 in C# -.-!

  • YellowSub Avatar

    This comment has been hidden.

  • ShokoN1234 Avatar

    This comment has been hidden.

  • Cloud L-A Avatar

    This comment has been hidden.

  • c0dezi_65 Avatar

    This comment has been hidden.

  • rajeev090 Avatar

    This comment has been hidden.

  • Dr.Blank Avatar

    This comment has been hidden.

  • mjpieters Avatar

    This comment has been hidden.

  • gguerrero11 Avatar

    exit code 132 on Swift with matching/passing test cases

  • Ninja45 Avatar

    Guys this did not feel like a 5 kyu kata at all

  • Aloy Avatar

    The main test exits with "Time: 2668ms Exit Code: 132"

  • cyril-lemaire Avatar

    Python. It's kinda weird to enforce the return type as an array. One should just check that the result is an iterable of the right size with the right elements, there is no reason to reject tuples or any other Iterable.

  • epangar Avatar

    This comment has been hidden.

  • FArekkusu Avatar

    The function name should be in snake_case in Python and Ruby.

  • shieldme Avatar

    This comment has been hidden.

  • AyushBk Avatar

    "Exit Code: 132"

  • BenMathews Avatar

    My test results are correct but I get "Exit Code: 132" and can't submit. Im in Swift

  • jolaf Avatar

    This comment has been hidden.

  • jolaf Avatar

    This comment has been hidden.

  • A_QuaZar Avatar

    Can't pass one test it responds:

    [354224848179261915075, 573147844013817084101, True] should equal [573147844013817084101, 927372692193078999176, False]

    or

    [573147844013817084101, 927372692193078999176, False] should equal [354224848179261915075, 573147844013817084101, True]

    depending on what output my program has.

  • Technetium_Phenol Avatar

    This comment has been hidden.

  • mdausmann Avatar

    Attempting in C. Can't figure this one out at all. This function in the test code:-

    char* array2StringULongLong(ull* array, int sz);

    seems to be mangling my returned array so that I get errors like this...

    Error. Expected 55, 89, 1 but got 55, 89, 4201070

    when I am certain that the third item is the array is 1, not 4201070. I have tried using the bool lib and using true, I have also tried using littorals with various suffixes, can't get it to work. Help pls.

  • halomademeapc Avatar

    Wow this was really tough for me, I'm not used to doing math like this.

    Really needs more example tests for C#, there's only one positive outcome at a relatively low range, not very useful at all.

  • gxcad Avatar

    I'm making a habit out of commenting when a kata's difficulty is not matching its rating but...

    This is definitely a 6kyu, not a 5kyu like it is rated currently.

  • Coldsewoo Avatar

    It will be great if there are tests for large numbers:)

  • killar89 Avatar

    My solution passes all the tests up to very big numbers in Ruby

    Test Passed: Value == [354224848179261915075, 573147844013817084101, true]
    Expected: [573147844013817084101, 927372692193078999176, false], instead got: [218922995834555169026, 927372692193078999176, true]
    

    Is there any way to add the number it passes to the test in the output so I can verify if it's my code or the Kata :P

  • mambadev Avatar

    This comment has been hidden.

  • schnuri_ Avatar

    This comment has been hidden.

  • TrungVan Avatar

    Hello, Please reply me if any of you have time. I'm facing only one error: exitcode 139. The program is run well in IDE but not in the web. I did my own searching but nothing works. Is there anybody knows how to fix it? Can you do me a favor to help? Thanks

  • pwian Avatar

    Wrong solutions, bad tests on C#: infinite cycle when prod = ulong.MaxValue for 'Best Pricatice' solution

  • pinkston4 Avatar

    This comment has been hidden.

  • Cce2955 Avatar

    So I managed to finish this one, but I'm confused why it says I failed. The first data set is asking me to get 55, 89, true, which I do, and even in the log it shows 55, 89, true, and I altered the string to display exactly '[55, 89, true]' in the log, but the compiler states that it recieved "undefined", is it not wanting me to log the results? Does it want the data to be stored in specific variables? I am very confused as to why this is happening when I've fufilled the requirements

  • gatis Avatar

    Even with single line in function (return 0) gives me this error : "This error was caused due to an issue processing the web request, not because of an issue executing your code. You can retry the request." Also i see no errors on https://codewars.statuspage.io/ :/

  • flewk Avatar

    It is unfortunate that you require the nearest pair or else there is an elegant algebraic solution.

    Basically, it seems like you approached it algorithmically and got a nearest pair from your algorithm, so you just added it as a requirement for the return value.

  • Matias-Barrios Avatar

    This comment has been hidden.

  • staticVoidMan Avatar

    This comment has been hidden.

  • Bethany Avatar

    This comment has been hidden.

  • outloudvi Avatar

    Kind of overrated.. It seems not as hard as many other 5 kyu katas.

  • edvargas Avatar

    Try to use a paper for make some maths and find a better algorithm. Don't forget the correct data type.

  • exem Avatar

    This comment has been hidden.

  • heptapod Avatar

    Just in case anyone is struggling, as I was, with runtime despite setting an upper bound. Not recursively defining my fibonacci number function did the trick.

  • jeepi Avatar

    I'm the only one with bug this kata in c#

    i can't pass the test 13 and i dont know why cause all works.

  • eturin Avatar

    This comment has been hidden.

  • dirtypineapples Avatar

    Using the closed form expression of the Fib sequence to calculate fib numbers gives one off the true value for certain values, resulting in an incorrect output when using it.

    Eg According to the expression, F(76) = 3416...706 However, F(74) + F(75) = 3416...707

    Why is this? Im using Haskell btw.

  • gustavoaca1997 Avatar

    This comment has been hidden.

  • Wildpat01 Avatar

    Liked it, though ranked somewhat high IMHO. Thanks g964 for this one!

  • maksyms Avatar

    Is it possible to rank the solutions by their speed? Or memory usage?

    I think mine may be the fastest of all - how can I verify?

  • weedska Avatar

    This comment has been hidden.

  • Voile Avatar

    Different language versions has test cases of vastly different sizes (and hence vastly different difficulties).

    e.g Python has test cases with 42 digits, while the biggest test case in JS only has 9 digits. Then for some languages the limit is 64-bit long.

    Language versions which does not support BigInts should be cut off (deleted) from the kata. (Or I guess you can limit the number to just Int32 range, but then it'd be a 7kyu.)

  • Jomopipi Avatar

    great kata, don't know why people are complaining. I pretty much know what to do from reading the title.

  • Floriani Avatar

    You gave very big numbers in the attempt, codewards doesnt allow the code to run for that long to find that big number.

  • phnxfaze Avatar

    This comment has been hidden.

  • nezmustafa123 Avatar

    wtf is this shit lmao the guy who wrote this can't even ask a coherent question.

  • Adrianval96 Avatar

    This comment has been hidden.

  • I159 Avatar

    It is too simple for 5 kyu. It should be 7 kyu not higher.

  • Waynest Avatar

    Though ull is enough,but guess the limit of one problem is not a good habit.So i think it should be marked on the introduce of this problem.Anyway this problem is 5kyu,and is easier than it should be.

  • user6741587 Avatar

    This has to be the worst one yet I've tried in C++, no matter what I tried it somehow refused to properly return my array.

  • colonelcolt Avatar

    Haskell. The problem is that fibs implementation used in tests is quite inefficient and despite the fact that my solution forks locally and works fast, testing eats up the whole time slot. That's unfair, I believe. fibs implementation used in tests must use memoization or whatever, otherwise it affects the execution significantly.

  • testvar Avatar

    Every single kata by this author has been horrible so far. Information missing every time. This one had to return a static array or nothing worked (go figure). Malloc'd stuff would break everything up. Terrible.

  • gtzampanakis Avatar

    This comment has been hidden.

  • krbrennan Avatar

    horribly worded kata...can this not be a 'training kata'? just reading the task description put me to sleep...worst kata i've encountered. skip this one.

  • tessa_ Avatar

    I can't seem to get TypeScript version to work. No matter what I change in the solution, I get

    ../home/codewarrior/spec.ts(1,1): error TS1084: Invalid 'reference' directive syntax.

  • minhkien1809 Avatar

    I passed 13/13 java tests and it said failed 0 but there is no SUBMIT button. The same goes for my C solution, why is that?

  • rtomil Avatar

    /python 3.4.3/ When i run the examples everything is fine (takes ~100ms to finnish), but when i try to attempt:

    Time: 2175 ms Passed: 0 Failed: 0 "Response received but no data was written to STDOUT or STDERR. SIGKILL

    Process exited prematurally with SIGKILL signal."

    hmm, lol? should i wait?

  • newtodisworld Avatar

    In examples True is written as true

  • super_user Avatar

    AC in one go cake walk!!

  • Shroud3d Avatar

    Completely disregarded the phi nonsense as it is not needed. The fib sequence they want you to use is actually 1,1,2... instead of 0,1,1,2,.. as provided in the example. This got me stuck for a while.

  • ipso Avatar

    This comment has been hidden.

  • koderdojo Avatar

    The problem may have been a tad easy for 5 kyu, but I enjoyed looking through everyone's Python solutions. Many used memoization. Some dude even made a memoize decorator. I saw use of dynamic programming and generators, too. Someone new to these techniques can learn a lot. It was a good challenge.

  • nimou Avatar

    Nice one but seems a bit easy for 5kyu. It may be more intersting with huge 'prod' values though:)

  • hakazemi Avatar

    I think the hint at the very end is distractive and lead me to non-efficient solution.

  • nachosca Avatar

    Tried recursive, non recursive method, still getting this error...

    Process was terminated. It took longer than 11000ms to complete

  • lenndg89 Avatar

    This comment has been hidden.

  • user1757113 Avatar

    I don't like the fact that on 'submit' are executed other tests that are not part of the requirements. If the author of the kata want to have for example productFib(100000000) in less that 1sec this should be part of the requirements.

    Probably my code sucks because on 'submit' I receive a timeout error, ok... but how far is my implementation from the requirement? How I'm supposed to know without any clear requirements?

    as a developer we always complains that we do not receive clear instruction from our customer about what we want. At least here can we, please, be precise with the requirements?

  • yuleeque Avatar

    Haskell: It's not critical, more to be aesthetic, but since the return type is (_, _, Bool), it would be better to replace false with False in description:

    productFib 800 -- should return (34, 55, false)
    
  • user1580646 Avatar

    What? Getting error from the haskell test.

    /tmp/haskell11563-18-fmwhrh/Codewars/Kata/Fib/Test.hs:17:43: No instance for (Arbitrary t0) arising from a use of property' The type variable t0' is ambiguous Possible fix: add a type signature that fixes these type variable(s) Note: there are several potential instances: instance Arbitrary a => Arbitrary (Blind a) -- Defined in Test.QuickCheck.Modifiers' instance Arbitrary a => Arbitrary (Fixed a) -- Defined in Test.QuickCheck.Modifiers' instance (Integral a, Bounded a) => Arbitrary (Large a) -- Defined in Test.QuickCheck.Modifiers' ...plus 37 others In the expression: property In the second argument of ($)', namely property $ \ (Positive n) -> productFib n shouldBesolution n' In a stmt of a 'do' block: it "should work for random numbers" $ property $ \ (Positive n) -> productFib nshouldBe` solution n

    /tmp/haskell11563-18-fmwhrh/Codewars/Kata/Fib/Test.hs:18:20: No instance for (Eq t0) arising from a use of shouldBe' The type variable t0' is ambiguous Possible fix: add a type signature that fixes these type variable(s) Note: there are several potential instances: instance Eq a => Eq (GHC.Real.Ratio a) -- Defined in GHC.Real' instance Eq time-1.4.0.1:Data.Time.LocalTime.LocalTime.LocalTime -- Defined in time-1.4.0.1:Data.Time.LocalTime.LocalTime' instance (Eq e, Data.Functor.Classes.Eq1 m, Eq a) => Eq (Control.Monad.Trans.Error.ErrorT e m a) -- Defined in Control.Monad.Trans.Error' ...plus 210 others In the expression: productFib n shouldBesolution n In the second argument of($)', namely \ (Positive n) -> productFib n shouldBesolution n' In the second argument of($)', namely property $ \ (Positive n) -> productFib n shouldBe` solution n'

  • f.rodrigues Avatar

    I'm getting OverflowError: Python int too large to convert to C long. with productFib(256319508074468182850). That's because xrange() requires its arguments to fit into a C long. I'm manage to work around using itertool.count(1) and break but it seems annoying.

  • gunzblitz Avatar

    This comment has been hidden.

  • petducks Avatar

    In the instructions it says:

    if you don't find two consecutive F(m) verifying F(m) * F(m+1) = prod. F(m) will be the smallest one such as F(m) * F(m+1) > prod.

    productFib 800 -- should return (21, 34, False), -- since F(8) = 21, F(9) = 34, F(10) = 55 and 21 * 34 < 800 < 34 * 55

    Is it just me or is this not consistent? (21, 34, False) is < 800, not > 800.

  • jonocodes Avatar

    I'm getting unknown error on submission :( But tests pass, in python...

  • ChristianECooper Avatar

    This comment has been hidden.

  • bkaes Avatar

    Haskell translation kumited.

  • Absurdated Avatar

    Maybe it's a good idea to add test cases like 5456077604922913920 (i.e. with error by 1 on big numbers)?

  • ZozoFouchtra Avatar

    JS translation kumited.

    • Description modified
    • due to JS limits with big integers, prod doesn't exceed Number.MAX_SAFE_INTEGER (ie 9007199254740991)
    • add some random tests
  • bkaes Avatar

    I've just noticed what's strange in almost all your katas, compared to the ones I've seen when I started with Codewars: you don't provide language specific examples. This makes it sometimes harder for users to translate the kata into another language, since language specific code cannot be used to show better examples.

    I strongly suggest you to exchange productFib(714) --> [21, 34, true] with the usual Codewars example style:

    productFib(714) # should return [21, 34, true], 
                    # since F(8) = 21, F(9) = 34 and 714 = 21 * 34
                    
    productFib(800) # should return [34, 55, false], 
                    # since F(8) = 21, F(9) = 34, F(10) = 55 and 21 * 34 < 800 < 34 * 55
    

    Furthermore, this enables users to address they language specific return types. For example, in Haskell one wouldn't use a list, since lists aren't heterogeneous. So one would use a tuple or a specific other type instead and could show this in the description:

    data FibResult = Matched (Integer, Integer) | Unmatched (Integer, Integer)
    
    productFib 714 -- should return Matched (21, 34)
                   -- since F(8) = 21, F(9) = 34 and 714 = 21 * 34
                   
    productFib 800 -- should return Unmatched (34, 55)
                   -- since F(8) = 21, F(9) = 34, F(10) = 55 and 21 * 34 < 800 < 34 * 55