new problem and i added better support for sorting and a overall better script

This commit is contained in:
2025-08-17 18:58:12 +02:00
parent 996cfd2821
commit f3baec17e4
8 changed files with 778 additions and 344 deletions

View File

@@ -1,5 +1,6 @@
# API endpoint to get problem manifest (description) by folder
from markupsafe import Markup
from flask import Flask, render_template, request, redirect, url_for, send_from_directory
from flask import Flask, render_template, request, redirect, url_for, send_from_directory, jsonify
import markdown as md
import ast
from src.models import db, Problem, Solution
@@ -30,6 +31,20 @@ def setup():
# Start the background thread to scan problems
start_problem_scanner()
@app.route('/api/problem_manifest/<folder>')
def api_problem_manifest(folder):
# Try to load manifest.json from the problem folder
import json
manifest_path = BASE_DIR / 'problems' / folder / 'manifest.json'
if not manifest_path.exists():
return jsonify({'error': 'Manifest not found'}), 404
try:
with open(manifest_path, 'r', encoding='utf-8') as f:
manifest = json.load(f)
return jsonify(manifest)
except Exception as e:
return jsonify({'error': str(e)}), 500
@app.route("/script.js")
def script():
return send_from_directory("templates", "script.js")

View File

@@ -0,0 +1,90 @@
# Prime Number Function Checker
You are asked to **write a function** that checks if a number is a **prime number**.
### What is a Prime Number?
* A **prime number** is a whole number greater than `1`.
* It has only **two divisors**: `1` and the number itself.
* Example:
* `7` → Prime (divisible only by `1` and `7`)
* `8` → Not Prime (divisible by `1, 2, 4, 8`)
Numbers less than or equal to `1` are **not prime**.
📖 More info: [Wikipedia](https://en.wikipedia.org/wiki/Prime_number)
---
### Function Signature
```python
def check_prime(number: int) -> bool:
```
* **Input**:
* `number` → an integer
* **Output**:
* `True` → if the number is prime
* `False` → if the number is not prime
---
### Example 1
**Input:**
```python
check_prime(2)
```
**Output:**
```
True
```
---
### Example 2
**Input:**
```python
check_prime(4)
```
**Output:**
```
False
```
---
### Example 3
**Input:**
```python
check_prime(13)
```
**Output:**
```
True
```
---
**_Dont worry you do NOT need to write these Function Calls into your solution. QPP checks automatically_**
### Hint
Try using the **modulo operator `%`** to check if one number divides evenly into another.
If any number between `2` and `n-1` divides your number evenly, then its **not prime**.

View File

@@ -0,0 +1,7 @@
{
"title": "Prime Number Checker",
"description": "Determine if a given number is a prime number",
"description_md": "problems/PrimeNumber/description.md",
"test_code": "problems/PrimeNumber/test.py",
"difficulty": "medium"
}

View File

@@ -0,0 +1,33 @@
import unittest
# <!-- Function to check -->
# def check_prime(number : int) -> bool:
# for i in range(2, int(number)):
# if int(number) % i == 0:
# return False
# return True
class TestPrimeNumber(unittest.TestCase):
def test_prime_function(self):
test_cases = [
(2,True),
(3,True),
(4,False),
(6,False),
(1,False)
]
print("\nFUNCTION OUTPUT TEST RESULTS")
for input_val, expected in test_cases:
try:
actual = check_prime(input_val)
status = "✓ PASS" if actual == expected else "✗ FAIL"
print(f"{status} | Input: '{input_val}' -> Got: {actual} | Expected: {expected}")
self.assertEqual(actual, expected)
except Exception as e:
print(f"✗ ERROR | Input: '{input_val}' -> Exception: {e}")
raise
if __name__ == "__main__":
unittest.main(verbosity=2)

View File

@@ -1,13 +1,13 @@
## Reverse a List
Write a function called `reverse_list` that takes a list as input and returns the list in reverse order.
You are **not allowed** to just use Pythons built-in `.reverse()` method or slicing (`[::-1]`) try to reverse it manually for practice.
You are **allowed** to just use Pythons built-in `.reverse()` method or slicing (`[::-1]`), try to reverse it manually for practice.
### Function Signature:
```python
def reverse_list(lst):
# your code here
# your code here
```
### Requirements

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

File diff suppressed because it is too large Load Diff