Вывод простых чисел (VBScript)


'The 2008 Winter Scripting Games
'Advanced Event 6: Prime Time
'запуск: cscript primes.vbs
Option Explicit
Const pmax=200
Const pmin=2
Dim primes(),numbers(),nonprimes()
Dim i,j,npindex,pindex,nwidth

nwidth=Len(CStr(pmax))
ReDim numbers(pmax-pmin)
ReDim nonprimes(pmax-pmin)
ReDim primes(pmax-pmin)
For i=pmin to pmax
 numbers(i-2)=i
Next
wscript.echo "Prime numbers from " & pmin-1 & " to " & pmax & ":"
pindex=0
primes(0)=1
npindex=0
For i=LBound(numbers) to UBound(numbers)
 If numbers(i)>primes(pindex) and not NonPrime(numbers(i)) Then
  pindex=pindex+1
  primes(pindex)=numbers(i)
  wscript.echo String(nwidth-Len(CStr(primes(pindex)))+1," ") & primes(pindex)
  For j=i+1 to UBound(numbers)
   If not NonPrime(numbers(j)) Then
    If (numbers(j) Mod primes(pindex))=0 Then
	 nonprimes(npindex)=numbers(j)
	 npindex=npindex+1
	End If
   End If     
  Next
 End If
Next

Function NonPrime(number)
 Dim i
 NonPrime=false
 For i=LBound(nonprimes) to UBound(nonprimes)
  If number=nonprimes(i) Then
   NonPrime=true
   Exit For
  End If
 Next
End Function
Реклама
Запись опубликована в рубрике программирование с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s