[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: A small programming challenge

Subject: Re: A small programming challenge
From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx>
Date: Wed, 22 Jun 2005 03:16:07 -0700 (PDT)
xslt param
Hi Jim,
  Does the stylesheet which you have posted (written
by Oliver Becker) solves the same problem? Sorry I
have'nt studied it deeply. But if yes, what input you
gave it? And what output it produced..? Or does the
stylesheet takes the input from within?

Regards,
Mukul

--- James Fuller <jim.fuller@xxxxxxxxxxxxxx> wrote:

> u are aware of OliverB old stylesheet....
> 
> 
> <!-- 
>    The Sieve of Eratosthenes
>    GPL (c) Oliver Becker, 2000-06-13
>    obecker@xxxxxxxxxxxxxxxxxxxxxxx
> -->
> <xslt:transform
> xmlns:xslt="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
> 
> <xslt:output method="text" />
> 
> <xslt:param name="bound" select="1000" />
> 
> <xslt:template match="/">
>    <xslt:call-template name="eratosthenes">
>       <xslt:with-param name="pos" select="2" />
>       <xslt:with-param name="array">
>          <xslt:call-template name="init-array">
>             <xslt:with-param name="length"
> select="$bound" />
>          </xslt:call-template>
>       </xslt:with-param>
>    </xslt:call-template>
>    <xslt:text>
> </xslt:text>
> </xslt:template>
> 
> 
> <!-- Initialize the array (string) with length
> $length -->
> <xslt:template name="init-array">
>    <xslt:param name="length" />
>    <xslt:if test="$length &gt; 0">
>       <xslt:text>-</xslt:text>
>       <xslt:call-template name="init-array">
>          <xslt:with-param name="length"
> select="$length - 1" />
>       </xslt:call-template>
>    </xslt:if>
> </xslt:template>
> 
> 
> <!-- Sieve of Eratosthenes: If the number at
> position $pos isn't 
>      marked then it's a prime (and printed). If the
> position of the
>      prime is lower or equal then the square root of
> $bound then the 
>      new array will be computed by marking all
> multiples of $pos. -->
> <xslt:template name="eratosthenes">
>    <xslt:param name="array" />
>    <xslt:param name="pos" />
>    <xslt:if test="$pos &lt; $bound">
>       <xslt:variable name="is-prime"
> select="substring($array,$pos,1) =
> '-'" />
>       <xslt:if test="$is-prime">
>          <xslt:value-of select="$pos" />, <xslt:text
> />
>       </xslt:if>
>       <xslt:variable name="new-array">
>          <xslt:choose>
>             <xslt:when test="$is-prime and $pos*$pos
> &lt;= $bound">
>                <xslt:call-template name="mark">
>                   <xslt:with-param name="array"
> select="$array" />
>                   <xslt:with-param name="number"
> select="$pos" />
>                </xslt:call-template>
>             </xslt:when>
>             <xslt:otherwise>
>                <xslt:value-of select="$array" />
>             </xslt:otherwise>
>          </xslt:choose>
>       </xslt:variable>
>       <xslt:call-template name="eratosthenes">
>          <xslt:with-param name="array"
> select="$new-array" />
>          <xslt:with-param name="pos" select="$pos +
> 1" />
>       </xslt:call-template>
>    </xslt:if>
> </xslt:template>
> 
> 
> <!-- Mark all multiples of $number in $array with
> '*' -->
> <xslt:template name="mark">
>    <xslt:param name="array" />
>    <xslt:param name="number" />
>    <xslt:choose>
>       <xslt:when test="string-length($array) &gt;
> $number">
>          <xslt:value-of select="substring ($array,
> 1, $number - 1)" />
>          <xslt:text>*</xslt:text>
>          <xslt:call-template name="mark">
>             <xslt:with-param name="array"
> select="substring ($array,
> $number + 1)" />
>             <xslt:with-param name="number"
> select="$number" />
>          </xslt:call-template>
>       </xslt:when>
>       <xslt:otherwise>
>          <xslt:value-of select="$array" />
>       </xslt:otherwise>
>    </xslt:choose>
> </xslt:template>
> 
> </xslt:transform>
> 
> 
> this will take quite a long time...though uses no
> extension functions, I
> would utilize other approaches to search the problem
> domain if simply
> contrained by the requirement of being prime and 10
> digit length.
> 
> wish I had the time, though will process in the
> background on a solution
> to this.
> 
> cheers, Jim Fuller
> 
> 



		
____________________________________________________ 
Yahoo! Sports 
Rekindle the Rivalries. Sign up for Fantasy Football 
http://football.fantasysports.yahoo.com

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.