そもそもDを導くときにp=4q+1使ってんじゃないの?
p≠4q+1のときにはD=0とはならないでしょ?