---
# System prepended metadata

title: StudioMate Collaboration 1
tags: [' studiomate', challenge]

---

---
tags: challenge, studiomate
---

# StudioMate Collaboration 1

## The problem

:::info
Write a script in PHP that prints a list of numbers from 1 to 1000. 

For each number that is a multiple of 3 replace the number with the string "Studio", for each number that is a multiple of 5 replace the number with the string "Mate". 

If you have a number that is both a multiple of 3 and 5 replace the number with the string "Studio Mate". 


Please pay attention to:

- Readability and maintainability 
- Easy to expand
- Meet the requirements
- How you deliver the code

:::

## The solution (code)

> This solution prioritizes clean, readable and scalable code over performance.

``` php
<?php

// Write a script in PHP that prints a list of numbers from 1 to 1000.
// - For each number that is a multiple of 3 replace the number with the string "Studio",
// - for each number that is a multiple of 5 replace the number with the string "Mate".
// - If you have a number that is both a multiple of 3 and 5 replace the number with the string "Studio Mate".

// run script
customPrintList(range(1, 1000));

function customPrintList($list)
{
    foreach ($list as $number)
    {
        customPrintNumber($number);
        // print new line
        echo PHP_EOL;
    }
}

function customPrintNumber($number)
{
  // is multiple of 3 and 5
  if (isMultipleOf($number, 15))
  {
      echo "Studio Mate";
  }
  else if (isMultipleOf($number, 3))
  {
      echo "Studio";
  }
  else if (isMultipleOf($number, 5))
  {
      echo "Mate";
  }
  else
  {
      echo $number;
  }
}

// a multiple is a number that can be divided by another number a certain number of times without a remainder.
function isMultipleOf($number, $n)
{
    return ($number % $n == 0);
}

?>
```

## Try it here !
https://replit.com/@AndresBernardi/StudioMate#main.php