September 2016 Flo Challenge
Testimonials
First Prize Winner
Devaraj Vannala, Bangalore
Any question that revolves around manipulating numbers is fun to tackle. Implementing series was easy, but it was interesting to see the results of the first question. I was intrigued by the process of optimizing the solution and that got me hooked to the contest. It was evident that 'creating efficient code' was being tested, not just some random solution. Thanks to Flocareer for providing such a great platform to test one's skills on coding, that too, with an attractive prize.
- Devaraj
Second Prize Winner
Nikhil Vaghela, Ahmedabad, Gujarat
I love challenges that involve something to learn outside of coding too. Both FloCareer challenges are great from that perspective. On top of that, if you win some cash, that's added benefit! September challenge was more interesting, as it included both practical question of parsing email as well as a theoretical challenge that was related to Mathematics.
- Nikhil
Third Prize Winner
Kevin Joshi, Rajkot, Gujarat
I participated in July as well as September challenges. I am glad to know that I was placed 3rd place in September challenge. I carefully went through the solution video of July challenge and applied some of the tips and advises given in that video, such as providing comments, organizing code appropriately etc. Thanks FloCareer for the interesting challenge, and keep it coming!
- Kevin
Monthly Flo Challenge

A hackathon that makes sense!
Prizes
Participate in this coding challenge and win prizes worth Rs. 50,000/-
Cash prizes for 1 st , 2 nd and 3 rd winners
+
Goodies for 20 more
September 2016 Challenge
September 2016 Challenge has two questions.
Que 1 : Email address parser
You have to write an email address parser that takes an email as an argument and tries to parse first name and last name from the email address. 
It is possible that you may not be able to parse first name or last name or both in some cases. It should return empty string in those cases.
However, cover as many variations as possible. Look into your address book and see various email addresses people come up with. How many of such addresses can your program parse?
Que 2 : Converge or Diverge?
This is a mathematical challenge. You have to do apply following formula to given number:

If number is even: n / 2
If number is odd: 3n + 1

Continue doing that operation to the answer. Now, given that we are multiplying 3 times on odd numbers but dividing only by 2 for even, it is possible that for some numbers, the answers will keep going up and up and up... You may conclude after a while that the series is diverging. But, for some numbers, you will find that it converges to 1.

For example: 5

5 is odd, so 3n + 1 will give 16. 16 is even, so n/2 operations will give you 8 -> 4 -> 2 -> 1. So, 5 converges.

Here is the problem statement: From numbers 2 to 1000, program should tell whether it converges or diverges. If it converges, print the series. The output should look like following for converging numbers:

5: 5 -> 16 -> 8 -> 4 -> 2 -> 1.

For divergent numbers, you can print "x: Diverges" -- don't print partial series upto the point when you give up.
            
  • Once you do initial problem, can you optimize it for the trade off of time v/s space?
  • Allowed programming languages: Python, Java, C++, C, Java-Script
  • We recommend you that you first keep answers to following questions handy before starting the assessment:
Questions
Q1: Provide details of the programming language that you have chosen, operating system where it was compiled (if applicable) and tested, version numbers of environment as applicable, as well as supported browsers and their versions (in case of JavaScript only).
Q2: Write an email address parser that takes an email as an argument and tries to parse first name and last name from the email address. It is possible that you may not be able to parse first name or last name or both in some cases. It should return empty string in those cases. However, cover as many variations as possible. Look into your address book and see various email addresses people come up with. How many of such addresses can your program parse?
Q3: Write a test program that tests the email parser that you submitted. We should be able to just run the test program and it should parse all combinations of email addresses. In other words, the test program should NOT prompt users to type email address. Data to test the parser should be part of the test program.
Q4: From numbers 2 to 1000, write a program that tells whether applying following formula to the number will result in converging or diverging series:

If number is even: n / 2
If number is odd: 3n + 1

If it converges, print the series. The output should look like following for converging numbers: 5: 5 -> 16 -> 8 -> 4 -> 2 -> 1. For divergent numbers, you can print "x: Diverges" -- don't print partial series upto the point when you give up.
Q5: Print output of your program in the space below.
Q6: For the program that you wrote in Question 4, rewrite the program to provide a space v/s time optimization.
How to participate:
  1. Click on This Link to start the assessment.
  2. The page will ask you to signup or login, if you are not already logged in.
  3. Start the test, where you will have to answer following questions. We recommend that you start the test only after you have the answers ready. You need to copy/paste the code; so make sure that you have tested the program properly before sending results.