|
Server IP : 128.199.20.84 / Your IP : 108.162.242.87 Web Server : Apache/2.4.41 (Ubuntu) System : Linux competent-maruti 5.4.0-128-generic #144-Ubuntu SMP Tue Sep 20 11:00:04 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.0.20 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF Directory (0755) : /usr/share/doc/python3-pyinotify/../python3-oauthlib/../mawk/examples/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
#!/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]
}