MCPcopy Create free account
hub / github.com/vercel/examples / prime_factorize

Function prime_factorize

python/celery/worker/tasks.py:40–77  ·  view source on GitHub ↗
(job_id: str, number: int)

Source from the content-addressed store, hash-verified

38
39@app.task(queue=QUEUE_NAME, name="worker.tasks.prime_factorize")
40def prime_factorize(job_id: str, number: int) -> dict[str, Any]:
41 original = int(number)
42 value = abs(original)
43 try:
44 if value < 2:
45 result = {"number": original, "factors": [original], "is_prime": False}
46 update_job(job_id, status="completed", result=result, progress={"step": "Done", "percent": 100})
47 return result
48
49 remaining = value
50 divisor = 2
51 factors: list[int] = []
52 max_divisor = max(2, int(value**0.5))
53
54 update_job(job_id, status="running", progress={"step": "Scanning factors", "percent": 0})
55 while divisor * divisor <= remaining:
56 while remaining % divisor == 0:
57 factors.append(divisor)
58 remaining //= divisor
59
60 if divisor == 2 or divisor % 100 == 0 or divisor * divisor > remaining:
61 update_job(job_id, status="running", progress={
62 "step": f"Testing divisor {divisor}",
63 "percent": min(95, int((divisor / max_divisor) * 100)),
64 })
65 time.sleep(0.02)
66
67 divisor += 1
68
69 if remaining > 1:
70 factors.append(remaining)
71
72 result = {"number": original, "factors": factors, "is_prime": len(factors) == 1}
73 update_job(job_id, status="completed", result=result, progress={"step": "Done", "percent": 100})
74 return result
75 except Exception as exc:
76 update_job(job_id, status="failed", result={"error": str(exc)})
77 return {"error": str(exc)}

Callers

nothing calls this directly

Calls 1

update_jobFunction · 0.90

Tested by

no test coverage detected