You are on page 1of 1

#include <iostream>

#include <random>
#include <set>

/**
* @brief Generates a complete set of Euro Millions lottery numbers with no
duplicates.
*
* This function generates a set of 5 main numbers and 2 lucky star numbers for the
Euro Millions lottery.
* The numbers are randomly generated using a uniform distribution and stored in a
set to ensure uniqueness.
*
* @return Returns a set containing the generated lottery numbers.
*/
std::set<int> generateEuroMillionsNumbers() {
std::set<int> numbers;

// Create a random number generator


std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<int> mainDist(1, 50);
std::uniform_int_distribution<int> luckyDist(1, 12);

// Generate 5 main numbers


while (numbers.size() < 5) {
int num = mainDist(gen);
numbers.insert(num);
}

// Generate 2 lucky star numbers


while (numbers.size() < 7) {
int num = luckyDist(gen);
numbers.insert(num);
}

return numbers;
}

int main() {
// Generate Euro Millions numbers
std::set<int> numbers = generateEuroMillionsNumbers();

// Print the generated numbers


std::cout << "Euro Millions Numbers:" << std::endl;
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;

return 0;
}

You might also like