f(1)=f(1)2 より f(1)=1 であるので,f が定数関数ならば f(n)=1 であり,これは条件を満たす.以下,f は定数関数でないとする.このとき,以下を満たす 2 以上の整数 m,c が存在する.
f(1)=⋯=f(m−1)=1,f(m)=c
f(mk)=ck であることに注意せよ.m の倍数でない正整数を小さい順に並べた数列をm1,m2,… として,任意の正整数iに対して f(mi)=1 であることを示す.
k を m−1 以上の整数とし,f(m1)=f(m2)=⋯=f(mk)=1 であると仮定する.mk+1 を m で割った商を q,余りを r とすると f(mk+1)=f(mq+r) はf(mq)=cf(q) または f(r)=1 に等しい.ここでmq−r=mi i≤k
なる i が存在するので
f(mk+1)=f(mq+r)f(mq−r)=f(m2q2−r2)
であり,これは f(m2q2)=(cf(q))2 または f(r2)=1 と等しい.よって
f(mk+1)∈({cf(q),1}∩{(cf(q))2,1})
であり,これと cf(q)=1 より f(mk+1)=1 である.よって全ての i に対して f(mi)=1 である.
よって f(n)=cvm(n) である.m=l1l2 なる 2 以上の整数 l1,l2 が存在すると仮定すると
c=f(l1l2)=f(l1)f(l2)=1
となり矛盾するので m は素数である.以上より求める関数は恒等関数 f(n)=1 または p を素数,c を 2 以上の整数として f(n)=cvp(n) と表される.