# 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 '12 at 7:03
You also could just define something like: prime[x_Integer /; x >= 0] := If[x == 0, 1, Prime[x]] as another approach. –  Vitaliy Kaurov Sep 3 '12 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. –  Fred Kline Sep 3 '12 at 7:54
I was hoping you'd answer your question yourself, since you figured out how to use it... :) –  Ｊ. Ｍ. Sep 3 '12 at 12:25

SetOptions[SelectedNotebook[],NotebookEventActions ->

Edited to add the Quiet to the actions.
Nice work. :) ${}$ –  Ｊ. Ｍ. Sep 3 '12 at 22:36