Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

素数の出力プログラム

素数を出力するプログラムをマクロで作ってみた

こんにちは、Mottyです。

概要

関数あるいは漸化式で表すことができるような単純な数であれば出力は簡単ですが、
そのような規則性がないものの場合、各値に対して真偽を判定させる必要があります。
今回は素数の出力をVBAで行ってみました。

素数

素数の定義は約数を"自分と1"の2つ以外に持たない数の集まりです。
ある数が素数かどうかを調べるには、1からある数まで順番に割り切れるかどうかを調べる
必要があります。

次の2つ(100,97)が素数かどうか調べたいと思ったときは
下記のようなプログラムになります。

prime.bas
Sub Main()

   Call prime(100) '
   Call prime(97) '

End Sub

Sub prime(Byval i As Long)

'素数判定がTrueなら出力
If IsPrime(i) Then
    debug.print(i)
End If

End Sub

'---素数判定---
Function IsPrime(Byval num As Long) As Boolean
Select Case num
   Case 1:
      IsPrime = False   
   Case Is >1:

      cnt = 2
      Do While cnt = num - 1
         If num Mod cnt = 0
            IsPrime = False
         End If
         cnt = cnt + 1
      Loop

      IsPrime = True

End Function

戻り値としてほしい場合は、Functionプロシージャーに変えていただければOKです。
以上、VBA系の作品もちょくちょく投稿していきたいです。

Yt330110713
駆け出しエンジニアの修行場、不定期更新です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away