おはようございます。

 

そして、

 

新年あけましておめでとうございます。

 

今日は1月1日。

 

20190101です。

 

今度こそ素数!

 

かと思いきや。

 

17*137*8669=20190101

 

うーん。

 

奥が深いね。

 

 

ということで。

 

素数かどうかを判定するプログラムを。

 

書くのはめんどうだから。

 

ちょっとコピペ。

 

そうね。

 

みんな聞いたことあるJava!

 

System.out.println("素数判定プログラム");
int v = 123;
System.out.println("入力された数字は『" + v + "』です");

if (v < 2) {
    System.out.println("2より小さい数字が入力されました");
} else if (v == 2) {
    System.out.println(v + "は素数です");
} else {
    boolean issosu = true;
    for (int u = 2; u < v; u++) {
        if (v % u == 0) {
            is = false;
        }
    }

    if (isSosu) {
        System.out.println(v + "は素数です");
    } else {
        System.out.println(v + "は素数ではないです");
    }
}


これで、素数判定できますね。


Java分かりにくいって?
そうね。


Vbaが得意でしたので。


VBAで!


Sub 素数を求める()
  Dim i As Long
  Dim j As Long
  Dim m As Long
  Dim p As Long
  i = 1
  j = 1
  p = 2
  Do
    If 素数判定(p) Then
      Cells(i, j) = p
      i = i + 1
      If i > Rows.Count Then
        i = 1
        j = j + 1
      End If
    End If
    p = p + 1
  Loop
End Sub

 

Function 素数判定(ByVal p As Long) As Boolean
  素数判定 = False
  Dim m As Long
  If p = 2 Then Exit Function
  For m = 2 To Int(Sqr(p))
    If p Mod m = 0 Then
      Exit Function
    End If
  Next
  素数判定 = True
End Function


と、まぁ、こんな感じ。


さぁやってみよう!


レッツプログラミング!


ご興味のある方はあんのまで!