tvl-depot/assessments/semiprimes/README.md
William Carroll c23a12746c Initialize the Semiprimes Service
This is an exciting take-home assignment because I get to write a service in
Elixir!
2020-12-11 18:52:35 +00:00

30 lines
902 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Semiprimes Service
## Introduction
A **composite** is a number containing at least two prime factors. For example:
```
15 = 3 × 5
9 = 3 × 3
12 = 2 × 2 × 3
```
There are ten composites below thirty containing precisely two, not necessarily
distinct, prime factors: `4, 6, 9, 10, 14, 15, 21, 22, 25, 26`. Lets call such
numbers *Semiprimes*.
## Task
- Write a module which provides a function to tell whether a given number, `N`,
is a semiprime. `N` will be 10^5.
- Please implement an API (RESTful or GraphQL) to factor a given number into two
prime numbers if its a semiprime, otherwise, return an error message.
## Stretch Goals
- Handle the invalid inputs.
- Support batch requests: i.e. users could provide 100 numbers, and the API
return the answer for all.
- Considering this module will be used by a long running service, could you
optimize it to give answers faster?