Skip to content

Commit 91bd6b6

Browse files
committed
no need for array, since we don't care about the primes
1 parent 684f35a commit 91bd6b6

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

HumanEvalLean/HumanEval75.lean

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,21 @@ def smallestPrimeFactor (n : Nat) : Nat := Id.run do
88
return i
99
n
1010

11-
def isMultiplyPrime (a : Nat) : Bool := Id.run do
12-
let mut primes := (∅ : Array Nat)
11+
def isMultipleOfKPrimes (a : Nat) (k : Nat) : Bool := Id.run do
12+
let mut total := 0
1313
let mut a := a
14-
for _ in [0:3] do
14+
for _ in [0:k] do
1515

1616
if a ≤ 1 then
1717
return false
1818

1919
let p := smallestPrimeFactor a
2020
a := a / p
21-
primes := primes.push p
21+
total := total + 1
2222

23-
primes.size == 3 && a == 1
23+
total == k && a == 1
24+
25+
def isMultiplyPrime (a : Nat) : Bool := isMultipleOfKPrimes a 3
2426

2527
example : isMultiplyPrime 5 = false := by native_decide
2628
example : isMultiplyPrime 30 = true := by native_decide
@@ -41,7 +43,10 @@ def IsMultiplyPrimeIff (solution : Nat → Bool) : Prop :=
4143
(a : Nat) → solution a ↔ ∃ (p₁ p₂ p₃ : Nat), p₁ * p₂ * p₃ = a ∧ Nat.IsPrime p₁ ∧ Nat.IsPrime p₂ ∧ Nat.IsPrime p₃
4244

4345
theorem isMultiplyPrime_is_correct : IsMultiplyPrimeIff isMultiplyPrime := by
44-
sorry
46+
intro a
47+
constructor
48+
· sorry
49+
· sorry
4550

4651
/-!
4752
## Prompt

0 commit comments

Comments
 (0)