# Tweaking Prime[n] to return 1 when n==0

I manually evaluate this cell to set Prime[0]

Unprotect[Prime]
Prime[0] = 1
Protect[Prime]


I manually evaluate this cell to reset Prime[0]

Unprotect[Prime]
Prime[0] =.
Protect[Prime]


In case I forget to do it, is there a way to automatically evaluate the second cell when I close the nb?

Motivation

I'm working with bags of primes and want to use $p_0$ as the bag for all prime greater than the square-root of some $n$.

Displayed as: $\left\{p_0^1,p_1^5,p_2^2,p_3^1,p_4^1\right\}$

With counts as: $\left\{1,5,2,1,1\right\}$

• Have you seen NotebookEventActions[]? Sep 3, 2012 at 7:03
• You also could just define something like: prime[x_Integer /; x >= 0] := If[x == 0, 1, Prime[x]] as another approach. Sep 3, 2012 at 7:07
• @J.M.-- Looks interesting. I determined that if I exit mma, the change gets reset automatically. It's only a problem when I open or create nbs from the current session. Thanks. Sep 3, 2012 at 7:54
• I was hoping you'd answer your question yourself, since you figured out how to use it... :) Sep 3, 2012 at 12:25

SetOptions[SelectedNotebook[],NotebookEventActions ->

Edited to add the Quiet to the actions.
• Nice work. :) ${}$ Sep 3, 2012 at 22:36