BASIC 256

素数の日 

西暦年を入力すれば、その年の素数日 (たとえば、20191231 ... ) をすべて出力するコードを書く。

動けばいいコード。

Function isPrime(n)
  If n < 2 Then Return False
  If n = 2 Then Return True
  If n % 2  = 0 Then Return False
  limit = Int(Sqr(n))
  For i = 3 To limit Step 2
    If n % i = 0 Then Return False
  Next i
  Return True
End Function

Function leapyear(Y)
    If (Y % 4) <> 0 Then Return False
    If (Y % 100) = 0 And (Y % 400) <> 0 Then Return False
    Return True
End Function

input "y= ",y
yy=10000*y

If leapyear(y) Then dd=29 Else dd=28

For i = yy+0101 To yy+0131
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print
For i = yy+0201 To yy+0200+dd
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print
For i = yy+0301 To yy+0331
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print
For i = yy+0401 To yy+0430
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print
For i = yy+0501 To yy+0531
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print

For i = yy+0601 To yy+0630
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print
For i = yy+0701 To yy+0731
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print
For i = yy+0801 To yy+0831
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print
For i = yy+0901 To yy+0930
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print
For i = yy+1001 To yy+1031
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print
For i = yy+1101 To yy+1130
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
print
For i = yy+1201 To yy+1231
  If isPrime(i) Then 
    Print String(i); " "; 
  End If
Next i
end

2019年

y= 2019

20190221 20190227

20190301 20190319 20190323

20190421

20190523 20190529

20190601 20190613

20190719

20190811 20190823

20190913

20191009 20191027

20191109 20191117

20191231


2020年

y= 2020

20200109 20200111 20200121 20200123

20200223

20200309

20200429

20200511 20200529

20200613 20200619

20200703 20200711 20200721 20200723 20200729

20200801 20200813

20200903

20201021 20201029

20201101 20201113

20201227 20201231 

素数日 が無い月の年もあった。

y= 2001

20010127

20010209 20010217 20010223

20010307 20010313 20010323

20010409

20010517


20010701 20010721

20010811

20010917 20010929

20011001 20011007 20011031