'
'begin the oklaprim.tea program written in the 
'programming language Teapro utilizing the OpenTea technology
'People need computer software that actually works.
vari dg_pass1, dg_pass2, dg_pass3, dg_pass4
vari sg_pass1, sg_pass2, sg_pass3, sg_pass4
vari dg_now, sg_now, dg_endprogram
vari dg_length, sg_primequads, sg_fileout
vari dg_modprime, dg_resultprime
vari sg_hourlines, sg_hourdate
vari sg_build, sg_path, sg_interpreter, sg_math, sg_nothing
vari dg_xvalue, dg_yvalue, dg_zvalue, sg_xyzmath
vari dg_uvalue, dg_vvalue, dg_wvalue

sub_main
endp

subr sub_main
'updated 2005/10/21, 2004/03/30
'main subroutine
    vari d_any, s_any, d_dot, s_dot
    vari d_pick

    dg_endprogram = 2

    dwhi dg_endprogram <> 1
	  sub_menu0
    endw
ends sub_main


subr sub_menu0
'updated 2010/05/27, 2010/05/20, 2010/05/09
'2010/05/01, 2010/04/15, 2010/03/28, 2010/03/22, 2010/03/14
'2009/09/15, 2009/03/08, 2008/12/06, 2008/02/25, 2008/02/05
'2007/12/05, 2007/09/22, 2007/07/24, 2007/07/20, 2007/07/18
'2007/07/17, 2007/07/16, 2007/06/27, 2007/06/26, 2007/04/24
'2007/02/26, 2007/02/25, 2007/02/24, 2007/01/06, 2006/11/26
'2006/11/11, 2006/11/05, 2006/10/29, 2006/10/25, 2006/08/29
'2006/08/17, 2006/04/08, 2005/10/21, 2005/10/19, 2004/04/17
'menu of possibilities
    vari d_any, s_any, d_dot, s_dot, s_aster
    vari s_pick, d_pick, s_out, d_inp, d_seconds, s_speedquick

    $trb sg_nothing, " "
    $ch$ s_aster, "*", 70

    $sys sg_interpreter, 3
    $trb sg_interpreter, sg_interpreter
    $sys sg_path, 1
    $trb sg_path, sg_path

'make sg_build and add length of the program
sg_build = "oklaprim.tea build=0975 2010/08/25"
dsys d_any, 3
$app sg_build, " " + d_any
$out sg_build
$out "oklaprim.tea is in the public domain"

$out "oklaprim.tea may be used for free by anyone,"
$out "but there is no warranty of any kind on it."

$out s_aster
$out "written in the teapro programming language"
$out "teapro copyright (c) 1997-2010 by D La Pierre Ballard"
$out "teapro uses the opentea technology to be simple and solid"

$out s_aster
        
$out "People need computer software that actually works."
    $out s_aster

    sub_floating_point_test
    sub_filename
    sub_path_prog_memory

    sub_speedquick    
    s_speedquick = sg_pass1
    $out s_aster

    $out "1 = duo teaquad 5TP39 begin again, 1quad"
    $out "2 = duo teaquad 5TP39 choose file code and number"
    $out "3 = sub_pause_file_build_delete"
    $out "11 = sub_menu_5tp39"
    $out "12 = sub_menu_pnq30"
    $out "13 = sub_menu_primes"
    $out "21 = sub_teaquad_primes_1101"
    $out "31 = sub_prime_numbers"
    $out "32 = sub_compare_dfac_and_dfak"
    $out "33 = sub_teaquad_prime_quads_duo"
    $out "35 = sub_teaquad_5tp39_teapro_loop"
    $out "42 = sub_prime_test_one_number"
    $out "44 = sub_teaquad_primes_find"
    $out "45 = sub_teaquad_primes_test_one_number"
    $out "46 = sub_teaquad_primes_test_in_file"
    $out "47 = sub_teaquad_5tp39_test_a_number_duo"
    $out "49 = sub_teaquad_mod_test"
    $out "51 = sub_hour_lines_of_qtp20xx1"
    $out "52 = sub_collect_5tp39xx  " + sg_path
    $out "96 = sub_xyz_math         " + sg_interpreter
    $out "98 = sub_speed98_test     " + sg_build
    $out "99 = sub_speed_test       " + s_speedquick

    dsec d_any
    s_out = "pick a number *=end " + " x=" + dg_xvalue
    $app s_out, " " + d_any
    $inp s_pick, s_out

    $isd d_any, s_pick
    d_pick = 0
    dift d_any = 1: $tod d_pick, s_pick

    $ift s_pick = "*": dg_endprogram = 1

    '5tp39 find by modulus begin again 1quad
    dift d_pick = 1
	  dg_pass1 = 1
	  sub_teaquad_5tp39_by_modulus_duo
    endi

    '5tp39 find by modulus choose file code, beg, end
    dift d_pick = 2
	  dg_pass1 = 2
	  sub_teaquad_5tp39_by_modulus_duo
    endi

    'build or delete s_pausefile
    dift d_pick = 3: sub_pause_file_build_delete

    'menu for 5TP39
    dift d_pick = 11: sub_menu_5tp39

    'menu for PNQ30
    dift d_pick = 12: sub_menu_pnq30

    'sub_menu_primes
    dift d_pick = 13: sub_menu_primes

    'primes of the form of 101
    dift d_pick = 21: sub_teaquad_primes_1101

    'Primes
    dift d_pick = 31: sub_prime_numbers

    'almost primes
    dift d_pick = 32: sub_compare_dfac_and_dfak

    'Prime number quads
    dift d_pick = 33: sub_teaquad_prime_quads_duo

    'test 5tp39 with teapro loop
    dift d_pick = 35: sub_teaquad_5tp39_teapro_loop

    'prime number, test a particular number
    dift d_pick = 42: sub_prime_test_one_number

    'teaquad primes > 2^53
    dift d_pick = 44: sub_teaquad_primes_find
    dift d_pick = 45: sub_teaquad_primes_test_one_number
    dift d_pick = 46: sub_teaquad_primes_test_in_file
    dift d_pick = 47: sub_teaquad_5tp39_test_a_number_duo
    dift d_pick = 49: sub_teaquad_mod_test

    dift d_pick = 51: sub_hour_lines_of_qtp20xx1
    dift d_pick = 52: sub_collect_5tp39xx

    dift d_pick = 96
	  sg_pass1 = "x=x"
	  sub_xyz_math
    endi
    dift d_pick = 98: sub_speed98_test
    dift d_pick = 99: sub_speed_test

    sg_pass1 = s_pick
    sub_xyz_math
ends sub_menu0


subr sub_menu_5tp39
'updated 2010/06/23, 2010/03/14
'2010/02/19, 2010/02/16, 2008/04/07, 2007/08/30, 2007/07/31
'2007/07/06, 2007/06/13, 2007/04/06, 2007/03/19, 2007/02/25
'2006/10/26, 2006/09/23, 2006/09/04, 2005/10/21, 2004/05/06
'menu of possibilities
    vari d_any, s_any, d_dot, s_dot
    vari s_pick, d_pick, s_out, d_inp, d_seconds

    $out "12 = sub_5TP39_validate_in_a_file"
    $out "13 = sub_5tp39_two_files_compare"
    $out "21 = sub_5tp39_teaquad_next_primes"
    $out "31 = sub_getgaps_begin_again"
    $out "42 = sub_teaquad_5tp39_analyze_an_a_file"
    $out "52 = sub_5tp39_rolling_test_primes"
    $out "62 = sub_test_primes31_to_teaquad"
    $out "63 = sub_file_primes31_to_teaquad"
    $out "71 = sub_write_teapro_lines_test_teaquad_5tp39"
    $out "72 = sub_test_dift_loop_5tp39"
    s_out = "enter number,*=end, x=" + dg_xvalue
    $inp s_pick, s_out

    $isd d_any, s_pick
    d_pick = 0
    dift d_any = 1: $tod d_pick, s_pick

    $ift s_pick = "*": dg_endprogram = 1

    'test 5TP39 primes marked 5TP39= in a file
    dift d_pick = 12: sub_5TP39_validate_in_a_file

    'compare two files for 5TP39
    dift d_pick = 13: sub_5tp39_two_files_compare

    '5TP39 teaquad find next primes
    dift d_pick = 21: sub_5tp39_teaquad_next_primes

    dift d_pick = 31: sub_getgaps_begin_again    
    dift d_pick = 42: sub_teaquad_5tp39_analyze_an_a_file
    dift d_pick = 52: sub_5tp39_rolling_test_primes
    dift d_pick = 62: sub_test_primes31_to_teaquad
    dift d_pick = 63: sub_file_primes31_to_teaquad
    dift d_pick = 71: sub_write_teapro_lines_test_teaquad_5tp39
    dift d_pick = 72: sub_test_dift_loop_5tp39

    sg_pass1 = s_pick
    sub_xyz_math
ends sub_menu_5tp39


subr sub_menu_pnq30
'updated 2005/10/22, 2004/01/01
'menu of possibilities
    vari d_any, s_any, d_dot, s_dot
    vari s_pick, d_pick, s_out, d_inp, d_seconds

    $out "34 = big PNQ30s"
    $out "35 = PNQ30 by jumping 210"
    $out "36 = PNQ30 by PIVCOM"
    $out "37 = PNQ30 by Modulus, begin anywhere"
    $out "38 = PNQ30 by Modulus, begin again"
    $out "41 = test a number for PNQ30"
    $out "51 = test PNQ30s marked 'PNQ30=' or 'PNQ30:' in a file"
    
    s_out = "enter number,*=end, x=" + dg_xvalue
    $inp s_pick, s_out

    $isd d_any, s_pick
    d_pick = 0
    dift d_any = 1: $tod d_pick, s_pick

    $ift s_pick = "*": dg_endprogram = 1

    'big prime quads thirty apart
    dift d_pick = 34: sub_big_pnq30s

    'find PNQ30 by jumping 210
    dift d_pick = 35: sub_pnq30_by_210

    'find PNQ30 by PIVCOM
    dift d_pick = 36: sub_pnq30_by_pivcom

    'find PNQ30 by modulus
    dift d_pick = 37
	  dg_pass1 = 1
	  sub_pnq30_by_modulus
    endi

    'find PNQ30 by modulus begin anywhere
    dift d_pick = 38
	  dg_pass1 = 2
	  sub_pnq30_by_modulus
    endi

    'test a prime number for PNQ30
    dift d_pick = 41: sub_test_for_pnq30

    'test PNQ30 primes marked PNQ30= in a file
    dift d_pick = 51: sub_pnq30_file_test

    sg_pass1 = s_pick
    sub_xyz_math
ends sub_menu_pnq30


subr sub_menu_primes
'updated 2007/08/07, 2007/05/28, 2007/02/25, 2006/09/04
'2006/04/16, 2005/10/21, 2005/10/15, 2005/10/12, 2005/08/23
'2005/07/21, 2005/07/02, 2005/06/15, 2005/06/07, 2005/06/05
'2005/05/17, 2005/05/06, 2005/05/02, 2005/05/01, 2005/03/31
'2005/03/29, 2005/03/16, 2005/03/13, 2005/02/24, 2005/02/15
'2005/02/13, 2005/02/12, 2005/02/09, 2004/11/14
    vari s_any, d_any, s_dot, d_dot
    vari d_loop, s_pick, d_pick

    d_loop = 1
    dwhi d_loop = 1
        $out "2. prime numbers"
	  $out "4. prime gaps simple"
	  $out "5. prime gaps dfac"
	  $out "51. sub_dfac_speed_test"
	  $out "61. test every 10^14 number for times"
        $inp s_pick, "pick a number, * to end"

	  d_pick = 0
	  $isd d_any, s_pick
	  dift d_any = 1: $tod d_pick, s_pick

        'asterisk is char 42
        $ift s_pick = "*": d_loop = 2

        'prime numbers
        dift d_pick = 2: sub_primes_find

	  'prime gaps simple
	  dift d_pick = 4: sub_prime_gaps_simple

	  'prime gaps simple
	  dift d_pick = 5: sub_prime_gaps_dfac

        'dfac speed test
        dift d_pick = 51: sub_dfac_speed_test

        'test every 10^14th number for times
        dift d_pick = 61: sub_primes_time_test
    endw
ends sub_menu_primes


subr sub_primes_find
'updated 2006/07/29, 2005/03/31, 2005/02/17, 
'2005/02/13, 2005/02/12, 2005/02/11, 2005/02/09, 
'2005/02/05, 2005/01/31, 2005/01/30, 2004/12/04
'prime numbers
    vari s_any, d_any, s_dot, d_dot, s_out
    vari d_yesfile, s_filename, d_begin, d_tofindct,d_count
    vari d_time1, d_time2, d_time3
    vari d_maxdiff, d_maxprime, d_prevprime
    vari d_totprimes, d_yesdfac

    'get current subroutine name
    $sys s_any, 2
    $out s_any

    d_yesdfac = 2
    $inp s_any, "1 = use dfac"
    $ift s_any = "1": d_yesdfac = 1

    $inp s_any, "1 = save in file"

    d_yesfile = 2
    $isd d_any, s_any
    dift d_any = 1: $tod d_yesfile, s_any

    dift d_yesfile = 1
	  $inp s_filename, "enter filename"
	  fdel d_any,  s_filename
    endi

    $out "12345678901234567890"
    $inp s_any, "enter number to start with"

    d_begin = 1
    $isd d_any, s_any
    dift d_any = 1: $tod d_begin, s_any

    ded$ s_any, d_begin, 0, 0
    $out "number entered=" + s_any

    'make sure number is odd and an integer
    d_begin = d_begin \ 1
    d_any = d_begin % 2
    dift d_any = 0: d_begin = d_begin + 1

    ded$ s_any, d_begin, 0, 0
    $out "begin=" + s_any

    'test d_begin for primeness
    d_begin = d_begin - 2

    $inp s_any, "how many to find"

    d_tofindct = 10
    $isd d_any, s_any
    dift d_any = 1: $tod d_tofindct, s_any

    $out "number to find=" + d_tofindct

    'get the begin seconds in d_time1
    dsec d_time1
    d_time2 = d_time1

    'd_maxdiff is for max difference at prime d_maxprime
    d_maxdiff = 0
    d_maxprime = 0

    'd_prevprime is for previous prime
    d_prevprime = d_begin

    'd_totprimes is for totalling the primes
    d_totprimes = 0

    'd_count is for counting the primes
    d_count = 0

    'is count d_count still less than total wanted d_tofindct
    dwhi d_count < d_tofindct

        'test d_begin for primeness
        d_begin = d_begin + 2
	  $sho d_begin

	  dift d_yesdfac = 1
		dfac d_dot, d_begin
	  else
            'prime test, dg_pass1=1 means prime
	      dg_pass1 = d_begin
            sub_prime_test_simple
	      d_dot = dg_pass1
	  endi

        dift d_dot = 1
		'we have a prime
            'output of prime in d_begin and info
            'increment count d_count
            d_count = d_count + 1

	      'get seconds into d_time2, begin in d_time1
	      dsec d_any
	      d_time3 = d_any - d_time2
	      d_time2 = d_any

	      'find difference with previous in d_prevprime
	      d_any = d_begin - d_prevprime
	      dift d_any > d_maxdiff
		    dift d_prevprime > 0
		        d_maxdiff = d_any
		        d_maxprime = d_prevprime
		    endi
	      endi

	      ded$ s_any, d_begin, 0, 0

	      s_out = "count=" + d_count + ", prime=" + s_any
	      $app s_out, ", seconds=" + d_time3 
		$app s_out, ", diff=" + d_any

            $out s_out

		'do we save to file s_filename
		dift d_yesfile = 1
		    fapp d_any, s_filename, s_out
		    dbad d_any = 0
		endi

	      'save to d_time1 for previous prime
	      d_prevprime = d_begin


            'd_totprimes is for totalling the primes
            d_totprimes = d_totprimes + d_begin
        endi
    endw

    'begin seconds are in d_time1
    dsec d_any
    d_any = d_any - d_time1
    s_out = "seconds=" + d_any
    $out s_out

    'do we save to file s_filename
    dift d_yesfile = 1
        fapp d_any, s_filename, s_out
	  dbad d_any = 0
    endi

    'output maximum d_maxdiff at d_maxprime
    ded$ s_any, d_maxprime, 0, 0
    s_out = "max=" + d_maxdiff + ", at=" + s_any
    $out s_out

    'do we save to file s_filename
    dift d_yesfile = 1
        fapp d_any, s_filename, s_out
	  dbad d_any = 0
    endi

    ded$ s_any, d_totprimes, 0, 0
    s_out = "total of primes=" + s_any
    $out s_out

    'do we save to file s_filename
    dift d_yesfile = 1
        fapp d_any, s_filename, s_out
	  dbad d_any = 0
    endi

    $inp s_any, "done"
ends sub_primes_find


subr sub_prime_gaps_simple
'updated 2006/05/20, 2006/05/09, 2006/05/03, 2006/05/01, 2006/04/18
'2006/04/17, 2006/04/16, 2005/03/31, 2005/02/23, 2005/02/19
    vari s_any, d_any, s_dot, d_dot, s_out
    vari d_yesfile, s_filename, d_number, d_tofindct, d_count
    vari s_date, s_prevhour, d_prevhour, d_factor, d_yesdfac
    vari d_gap, d_maxgap, d_prevprime, d_pause, d_loop
    vari d_process, d_seconds1, d_seconds2, s_seconds

    'get current subroutine name
    $sys s_any, 2
    $out s_any

    d_process = 1
    dift d_process = 1
        $inp s_any, "1 = pause after each"
        $ift s_any = "*": dinc d_process
        d_pause = 2
        $isd d_any, s_any
        dift d_any = 1: $tod d_pause, s_any
    endi
    dift d_process = 1
        $out "12345678901234567890"
        $inp s_any, "enter number to start with"
        $ift s_any = "*": dinc d_process

        d_number = 3
        $isd d_any, s_any
        dift d_any = 1: $tod d_number, s_any
    endi
    dift d_process = 1
	  $inp s_any, "enter max gap so far"
	  $ift s_any = "*": dinc d_process

        d_maxgap = 2
	  $isd d_any, s_any
	  dift d_any = 1: $tod d_maxgap, s_any
    endi
    dift d_process = 1
        ded$ s_any, d_number, 0, 0
        $out "number entered=" + s_any
        $out "begin gap=" + d_maxgap

        'make sure number is odd and an integer
        d_number = d_number \ 1
        d_any = d_number % 2
        dift d_any = 0: d_number = d_number + 1
        s_prevhour = "99"

        ded$ s_any, d_number, 0, 0
        $out "begin=" + s_any
        $out "gap=" + d_maxgap
        $out "d_yesdfac=" + d_yesdfac

        'd_prevprime is for previous prime
        d_prevprime = d_number
        d_number = d_number + 2
    endi

    'd_count is for counting the primes
    d_count = 0

    'is count d_count still less than total wanted d_tofindct
    dsec d_seconds1
    d_loop = d_process

    dwhi d_loop = 1
	  dg_pass1 = d_number
	  sub_prime_test_simple
	  d_factor = dg_pass1

	  dift d_factor = 1
		'd_number is prime
		$sho d_number

            'increment count d_count
            d_count = d_count + 1

	      'find difference with previous in d_prevprime
	      d_gap = d_number - d_prevprime

		dift d_gap >= d_maxgap
		    dsec d_seconds2
		    d_any = d_seconds2 - d_seconds1
		    dto$ s_seconds, d_any, 0, 3

		    d_maxgap = d_gap

	          ded$ s_any, d_prevprime, 0, 0
	          s_out = d_count + ". prime=" + s_any
		    $app s_out, ", gap=" + d_gap
		    $app s_out, ", max=" + d_maxgap
		    $app s_out, ", sec=" + s_seconds
                $out s_out

		    dift d_pause = 1
			  $inp s_any, "return, go=go, * to end"
			  $ift s_any = "*": d_loop = 2
			  $tup s_any, s_any
			  $ift s_any = "GO": dinc d_pause
		    endi
		    d_seconds1 = d_seconds2
		endi

	      'save to d_time1 for previous prime
	      d_prevprime = d_number
        endi

	  'next number to test
        d_number = d_number + 2
    endw
ends sub_prime_gaps_simple


subr sub_prime_gaps_dfac
'updated 2008/09/13, 2006/05/20, 2006/04/19, 2006/04/18
'2006/04/17, 2006/04/16, 2005/03/31, 2005/02/23, 2005/02/19
    vari s_any, d_any, s_dot, d_dot, s_out
    vari d_yesfile, s_filename1, s_filename2
    vari d_number, d_prevprime, d_factor
    vari s_date, s_prevhour, d_prevhourprime
    vari d_gap, d_maxgap, d_loop
    vari d_process, d_halfmax, d_big
    vari d_sec1, d_sec2, d_sec3

    'get current subroutine name
    $sys s_any, 2
    $out s_any

    d_big = 2
    d_process = 1
    dift d_process = 1
        $inp s_any, "1 = append to files GAPS1.TXT,GAPS2.TXT"
        $ift s_any = "*": dinc d_process

        d_yesfile = 2
        $isd d_any, s_any
        dift d_any = 1: $tod d_yesfile, s_any
	  s_filename1 = "gaps1.txt"
	  s_filename2 = "gaps2.txt"
    endi
    dift d_process = 1
'1,693,182,318,746,371 PRIME GAP AFTER THIS OF 1132
'FOUND 1999 BY Be Nyman
	  $out "first prime gap over 1000 found 1999 by Be Nyman"
	  $out "big=1,693,182,318,746,371"
        $out "12345678901234567890"
        $inp s_any, "enter number to start with"
        $ift s_any = "*": dinc d_process
	  $tup s_any, s_any
	  $ift s_any = "BIG"
		s_any = "1,693,182,318,746,371"
		d_big = 1
	  endi

        d_number = 3
        $isd d_any, s_any
        dift d_any = 1: $tod d_number, s_any
    endi
    dift d_process = 1
	  dift d_big <> 1
		$inp s_any, "enter max gap so far"
	  else
		s_any = "2"
	  endi
	  $ift s_any = "*": dinc d_process

        d_maxgap = 2
	  $isd d_any, s_any
	  dift d_any = 1: $tod d_maxgap, s_any
    endi
    dift d_process = 1
        ded$ s_any, d_number, 0, 0
        $out "number entered=" + s_any
        $out "begin gap=" + d_maxgap

        'make sure number is odd and an integer
        d_number = d_number \ 1
        d_any = d_number % 2
        dift d_any = 0: d_number = d_number + 1
        s_prevhour = "99"

        ded$ s_any, d_number, 0, 0
        $out "begin=" + s_any
        $out "gap=" + d_maxgap
	  d_halfmax = d_maxgap \ 2

        'd_prevprime is for previous prime
        d_prevprime = d_number
    endi

    dsec d_sec1
    d_loop = d_process

    dwhi d_loop = 1
	  'next number to test
        d_number = d_number + 2

	  dfac d_factor, d_number
	  dwhi d_factor <> 1
	      'next number to test
            d_number = d_number + 2

	      dfac d_factor, d_number
	  endw

	  'd_number is prime

        'find difference with previous in d_prevprime
        d_gap = d_number - d_prevprime

	  dift d_gap >= d_maxgap
		dsec d_sec2
		d_sec3 = d_sec2 - d_sec1
		d_sec1 = d_sec2

	      $dat s_date
	      $cut s_date, s_date, 1, 20

	      d_maxgap = d_gap
		d_halfmax = d_maxgap \ 2

            ded$ s_any, d_prevprime, 0, 0

            s_out = "prime=" + s_any
	      $app s_out, " gap=" + d_gap
	      $app s_out, " max=" + d_maxgap
            $app s_out, " dat=" + s_date 
		$app s_out, " sec=" + d_sec3
            $out s_out

	      'do we save to file s_filename
	      dift d_yesfile = 1
	          fapp d_any, s_filename1, s_out
		    dbad d_any = 0

	          fapp d_any, s_filename2, s_out
		    dbad d_any = 0
	      endi
	  endi

        d_prevprime = d_number

        dift d_gap > d_halfmax
	      $sho d_number

            '12345678901234567890
            '23-FEB-2005 08:25:03
            $dat s_date
            $cut s_any, s_date, 13, 2

            $ift s_any <> s_prevhour
                s_prevhour = s_any

                $cut s_date, s_date, 1, 20

                d_dot = d_prevprime - d_prevhourprime
                ded$ s_dot, d_dot, 0, 0
                d_prevhourprime = d_prevprime

                ded$ s_any, d_prevprime, 0, 0

                s_out = s_any + " " + "max=" + d_maxgap
	          $app s_out, "  " + s_date + " " + s_dot

	          $out s_out

                'do we save to file s_filename
                dift d_yesfile = 1
                    fapp d_any, s_filename1, s_out
	              dbad d_any = 0
                endi
            endi
        endi
	  dift d_big = 1
		dinc d_loop
		$inp s_any, "done"
	  endi
    endw
ends sub_prime_gaps_dfac


'HERE sub_teaquad_5tp39_by_modulus_duo

subr sub_teaquad_5tp39_by_modulus_duo
'updated 2010/08/25, 2010/08/24
'2010/08/23, 2010/08/22, 2010/08/21, 2010/08/20, 2010/08/16
'2010/08/13, 2010/08/12, 2010/08/11, 2010/08/10, 2010/08/03
'2010/08/02, 2010/08/01, 2010/07/30, 2010/07/28, 2010/07/15
'2010/07/07, 2010/06/22, 2010/06/21, 2010/06/17, 2010/06/09
'2010/06/04, 2010/06/01, 2010/05/31, 2010/05/29, 2010/05/28
'2010/05/21, 2010/05/19, 2010/05/09, 2010/05/04, 2010/05/02
'2010/04/29, 2010/04/25, 2010/04/23, 2010/04/22, 2010/04/21
'2010/04/20, 2010/04/19, 2010/04/16, 2010/04/15, 2010/04/10
'2010/04/09, 2010/04/07, 2010/04/06, 2010/04/04, 2010/04/02
'2010/04/01, 2010/03/29, 2010/03/27, 2010/03/23, 2010/03/22
'2010/03/21, 2010/03/20, 2010/03/19, 2010/03/14, 2010/03/06
'2010/02/28, 2010/02/27, 2010/02/26, 2010/02/23, 2010/02/22
'2010/02/21, 2010/02/19, 2010/02/18, 2010/02/17, 2010/02/15
'2010/02/14, 2010/02/13, 2010/02/12, 2010/02/11, 2010/02/09
'2010/02/07, 2010/02/06, 2010/01/28, 2010/01/27, 2010/01/25
'2010/01/24, 2010/01/22, 2010/01/21, 2010/01/20, 2010/01/19
'2010/01/18, 2010/01/14, 2010/01/13, 2010/01/12, 2010/01/08
'2010/01/07, 2010/01/06, 2010/01/04, 2010/01/02, 2009/12/29
'2009/12/26, 2009/12/24, 2009/12/16, 2009/12/15, 2009/12/14
'2009/12/06, 2009/12/03, 2009/12/02, 2009/11/30, 2009/11/28
'2009/11/26, 2009/11/25, 2009/11/24, 2009/11/22, 2009/11/21
'2009/11/20, 2009/11/18, 2009/11/17, 2009/11/12, 2009/11/10
'2009/11/09, 2009/10/20, 2009/10/13, 2009/10/12, 2009/10/09
'2009/10/08, 2009/10/07, 2009/10/06, 2009/09/23, 2009/09/17
'2009/09/16, 2009/09/15, 2009/09/14, 2009/09/11, 2009/09/10
'2009/09/07, 2009/09/02, 2009/08/30, 2009/08/29, 2009/08/27
'2009/08/21, 2009/08/20, 2009/08/19, 2009/08/18, 2009/08/17
'2009/08/16, 2009/08/15, 2009/08/14, 2009/08/12, 2009/08/10
'2009/08/09, 2009/08/08, 2009/08/05, 2009/08/04, 2009/08/02
'2009/07/29, 2009/07/20, 2009/07/19, 2009/07/14, 2009/07/12
'2009/07/11, 2009/07/10, 2009/07/09, 2009/07/07, 2009/07/06
'2009/07/05, 2009/07/04, 2009/07/03, 2009/07/02, 2009/06/29
'2009/06/17, 2009/06/12, 2009/06/11, 2009/06/10, 2009/06/09
'2009/06/06, 2009/05/15, 2009/05/12, 2009/04/27, 2009/04/26
'2009/04/25, 2009/04/24, 2009/04/21, 2009/04/19, 2009/04/18
'2009/04/16, 2009/04/11, 2009/04/10, 2009/04/09, 2009/04/08
'2009/04/07, 2009/04/04, 2009/04/02, 2009/04/01, 2009/03/29
'2009/03/24, 2009/03/22, 2009/03/18, 2009/03/17, 2009/03/16
'2009/03/12, 2009/03/11, 2009/03/09, 2009/03/08, 2009/03/05
'2009/03/04, 2009/03/03, 2009/03/02, 2009/03/01, 2009/02/26
'2009/02/24, 2009/02/22, 2009/02/20, 2009/02/19, 2009/02/14
'2009/02/13, 2009/02/01, 2009/01/29, 2009/01/25, 2009/01/24
'2009/01/19, 2008/12/22, 2008/12/06, 2008/11/23, 2008/11/09
'2008/10/27, 2008/10/20, 2008/09/27, 2008/09/21, 2008/09/16
'2008/09/13, 2008/09/08, 2008/08/27, 2008/08/14, 2008/07/18
'2008/07/16, 2008/07/15, 2008/07/13, 2008/07/12, 2008/07/09
'2008/07/08, 2008/07/07, 2008/07/06, 2008/07/05, 2008/07/03
'2008/07/02, 2008/06/09, 2008/06/02, 2008/05/31, 2008/05/30
'2008/05/15, 2008/05/14, 2008/05/12, 2008/05/10, 2008/04/29
'2008/04/15, 2008/04/10, 2008/04/07, 2008/04/06, 2008/03/17
'2008/03/15, 2008/03/13, 2008/03/06, 2008/02/29, 2008/02/28
'2008/02/21, 2008/02/14, 2008/02/07, 2008/01/08, 2008/01/06
'2008/01/03, 2008/01/02, 2007/12/22, 2007/12/21, 2007/12/09
'2007/11/12, 2007/11/05, 2007/11/03, 2007/10/29, 2007/10/19
'2007/10/18, 2007/10/17, 2007/10/13, 2007/10/08, 2007/10/07 
'2007/09/18, 2007/09/16, 2007/09/06, 2007/08/26, 2007/08/25
'2007/08/21, 2007/08/09, 2007/08/02, 2007/07/19, 2007/07/18
'2007/07/17, 2007/07/16, 2007/07/15, 2007/07/07, 2007/07/06
'2007/07/05, 2007/07/01, 2007/06/30, 2007/06/28, 2007/06/13
'2007/06/12, 2007/06/06, 2007/06/02, 2007/05/31, 2007/05/28
'2007/05/21, 2007/05/20, 2007/05/17, 2007/05/11, 2007/05/10
'2007/05/09, 2007/04/25, 2007/04/24, 2007/04/21, 2007/04/20
'2007/04/19, 2007/04/16, 2007/04/11, 2007/04/10, 2007/04/04
'2007/04/03, 2007/04/02, 2007/03/30, 2007/03/29, 2007/03/27
'2007/03/23, 2007/03/22, 2007/03/21, 2007/03/20, 2007/03/17
'2007/03/14, 2007/02/24, 2007/02/22, 2007/01/27, 2007/01/11
'2006/12/21, 2006/12/12, 2006/11/30, 2006/11/24, 2006/11/19
'2006/11/18, 2006/11/16, 2006/11/12, 2006/10/29, 2006/10/27
'2006/10/26, 2006/10/12, 2006/09/30, 2006/09/28, 2006/09/04
'2006/08/22, 2006/08/17, 2006/07/27, 2006/07/23, 2006/07/06
'2006/05/23, 2006/04/23, 2006/03/14, 2006/03/13, 2006/02/27
'2006/02/24, 2006/01/29, 2005/11/29, 2005/08/07, 2005/06/11
'2005/06/07, 2005/06/05, 2005/05/31, 2005/05/17, 2005/05/16
'2005/05/14, 2005/05/11, 2005/05/06, 2005/05/02, 2005/04/29
'2005/04/27, 2005/04/24, 2005/04/23, 2005/04/04, 2005/04/02
'2005/03/31, 2005/03/21, 2005/03/14, 2005/03/10, 2005/03/09 
'2005/03/08, 2005/03/03, 2005/03/02, 2005/02/27, 2005/02/24
'find 5TP39s by modulus
'for speed this subroutine uses GTAG and GOTO
    vari d_any, s_any, d_dot, s_dot, d_tap, s_tap, s_out
    vari d_ask, s_ask, d_qtptest
    vari d_good, s_beginnumber, d_begseconds, d_beglines
    vari s_datebegin, s_duodate35, s_date35, s_date17
    vari s_pausefile, s_pausehour, s_dashline
    vari s_10datehournew, s_2timehournew, d_2timehournew
    vari s_10datehourprev, s_2timehourprev, d_2timehourprev
    vari d_tpd01part, d_tpd02part, d_tpd03part, d_tpd04part
    'vari d_tpd05part, d_tpd06part, d_tpd07part, d_tpd08part
    vari d_tpdrate, s_tpdrate

    vari d_qtpcount, d_tothourct, s_sholine, s_hrline
    vari d_24part, d_24hourct
    vari d_billion, d_trillion

    vari d_primetest, s_primetest
    vari d_teaquadmaxpart, d_begin
    vari d_pivcompart, s_pivcom, d_process, d_y630
    vari d_number, s_number, d_div, d_duofactor, d_filenametest

    vari d_index, d_qtpmaxindex, d_maxarrayprime, d_maxprime
    vari d_filebyte, d_loop, s_record, s_file5tp39, s_line
    vari s_afile, s_bfile, s_2all, s_2code, d_long, d_which
    vari d_teaquadone, d_mod1, d_mod2, d_mod3
    vari d_teaquad11part, d_teaquad49part
    vari d_teaquadpart, d_teaquadmult

'HERE sub_teaquad_5tp39_by_modulus_duo

    'd_which=1 for begin again get number from file,qtp20
    'd_which=2 for enter file code, beg, end
    d_which = dg_pass1

    $ch$ s_dashline, "-", 60

    'get current subroutine name
    $sys s_any, 2
    $out s_any
    d_process = 1
    dpow d_teaquadone, 10, 15
    d_teaquadmult = 1
    $dat s_datebegin

    '12345678901234567890
    '05-MAR-2009 01:05:26
    $cut s_datebegin, s_datebegin, 1, 17

    d_qtptest = 2
    dift d_which = 2
	  'yesno output test line after 5TP39
	  $inp s_any, "1=output test info after 5TP39"
	  $ift s_any = "*"
		dinc d_process
		d_which = 99999
	  endi
	  $ift s_any = "1": d_qtptest = 1
    endi

    'which filename do we want in s_afile
    s_2all = "a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,"
    $app s_2all, "g0,g1,g2,g3,g4,g5,g6,g7,g8,g9,"
    $app s_2all, "n0,n1,n2,n3,n4,n5,h1,h2,h3,h4,"
    $app s_2all, "j1,j2,j3,j4,j5,j6,j7,j8,j9,"
    $app s_2all, "t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,"
    s_2code = sg_nothing
    d_dot = 1
    d_loop = d_process

    d_filenametest = 1
    dwhi d_loop = 1
	  $par s_dot, s_2all, ",", d_dot
	  $len d_any, s_dot
	  dift d_any = 2
		s_afile = "qtp20" + s_dot + "a.txt"
		s_bfile = s_afile
		$rep s_bfile, 8, "b"

		flen d_any, s_afile
		dift d_any > 10
		    s_2code = s_dot
		    dinc d_loop
		    dinc d_filenametest
		endi

		dinc d_dot
	  else
		dinc d_loop
	  endi
    endw

    dift d_filenametest = 1
	  'we did not find a file so zz
	  s_2code = "z" + "z"
        s_afile = "qtp20zza.txt"
        s_bfile = "qtp20zzb.txt"
    endi

    'd_which=1 for begin again get number from file,qtp20
    'd_which=2 for enter file code, beg, end
    d_ask = 2
    dift d_which = 2: d_ask = 1
    dift d_process <> 1: d_ask = 99999

    dift d_process <> 1: d_ask = 99999

    d_any = 1
    dift d_process <> 1: dinc d_any
    dift d_any = 1
	  $out s_dashline

	  'ask for file code
	  $out "t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,"
	  $out "a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,"
	  $out "g0,g1,g2,g3,g4,g5,g6,g7,g8,g9,"
	  $out "n0,n1,n2,n3,n4,n5,h1,h2,h3,h4,"
	  $out "j0,j1,j2,j3,j4,j5,j6,j7,j8,j9,"
	  $out "default files=" + s_afile + " and " + s_bfile

	  s_any = "enter different two letter file code, "
	  $app s_any, "return for default, zz=test"
	  $inp s_any, s_any
	  $ift s_any = "*"
		dinc d_process
		dinc d_ask
	  endi
	  $tlo s_any, s_any
	  $len d_any, s_any
	  dift d_any = 2: s_2code = s_any
'here s_2code now determined
    endi
    dift d_process = 1
	  $out s_dashline

        s_afile = "qtp20" + s_2code + "a.txt"
        s_bfile = s_afile
	  $rep s_bfile, 8, "b"

	  $out "looking at files=" + s_afile + " and " + s_bfile

	  'get beginning number from file
	  d_teaquad11part = 0
	  d_teaquadmult = 0
	  d_filebyte = 1
	  d_loop = 1

	  dwhi d_loop = 1
		'read through file to get last number
		fsip s_record, s_afile, d_filebyte

		dift d_filebyte = 0
		    dinc d_loop
		else
		    $tup s_record, s_record
		    $ift s_record = "STOP"
			  $inp s_any, "STOP for " + s_2code
			  dinc d_loop
			  dinc d_process
			  dinc d_ask
		    endi

		    $app s_record, " "
		    $lok d_any, s_record, 1, " "
		    $cut s_any, s_record, 1, d_any

		    'do we have a number
		    sg_pass1 = s_any
		    sub_teaquad_from_string
		    d_any = 2
		    dift dg_pass1 > 0: d_any = 1
		    dift dg_pass2 > 0: d_any = 1
		    dift d_any = 1
			  'we did get a number
			  s_line = s_record
		        d_teaquad11part = dg_pass1
		        d_teaquadmult = dg_pass2
		    endi
		endi	 
	  endw
    endi
    dift d_process = 1
	  'show d_teaquadmult,d_teaquad11part
	  ded$ s_any, d_teaquad11part, 0, 0
	  s_out = "file mult=" + d_teaquadmult + " part=" + s_any
	  $app s_out, " " + s_2code
	  $out s_out

	  dift d_teaquad11part > 0: $out "last=" + s_line
	  dift d_which = 1: d_ask = 2
	  dift d_teaquad11part = 0: d_ask = 1
	  $ift s_2code = "zz": d_ask = 1
    endi

    dift d_process <> 1: d_ask = 99999
    dift d_ask = 1	 
	  'ask for beginning number

	  'enter beginning number
	  s_out = "E15=in quadrillions   "
	  dift d_qtptest = 1
		$app s_out, "test = 10,002E15 or 10,115E15"
	  endi
	  $out s_out

	  dg_pass1 = d_teaquad11part
	  dg_pass2 = d_teaquadmult
	  sub_teaquad_to_string
	  s_number = sg_pass1
	  $out "beg=" + s_number + " " + s_2code

        s_out = "12345678901234567890123456"
	  $inp s_ask, s_out

	  $tup s_ask, s_ask
	  $ift s_ask = "*": dinc d_process

'HERE sub_teaquad_5tp39_by_modulus_duo

	  'do we have a "E15" for quadrillions
	  $lok d_any, s_ask, 1, "E15"
	  dift d_any > 0
		ddec d_any
		$cut s_ask, s_ask, 1, d_any
		$app s_ask, ",000,000,000,000,000"
		$out s_ask
	  endi

	  $trb s_ask, s_ask
	  $len d_any, s_ask
	  dift d_any > 0
	      sg_pass1 = s_ask
	      sub_teaquad_from_string
	      d_teaquad11part = dg_pass1
	      d_teaquadmult = dg_pass2
	  endi
    endi
    dift d_process = 1
	  $out s_dashline

        $out "files=" + s_afile + " and " + s_bfile + " " + s_2code

	  'minimum is 1,000,000
	  dift d_teaquadmult = 0
		d_any = 10 ^ 6
		dift d_teaquad11part < d_any: d_teaquad11part = d_any
	  endi

	  'show d_teaquadmult,d_teaquad11part
	  ded$ s_any, d_teaquad11part, 0, 0
	  s_out = "mult=" + d_teaquadmult + " part=" + s_any
	  $app s_out, " " + s_2code
	  $out s_out

	  'find the PIVCOM of d_teaquadmult,d_teaquad11part
        'term PIVCOM was invented by Roger Hargrave on 2002/08/11
        'find d_pivcompart for d_teaquadmult, d_teaquad11part

	  'first drop back a bit for conservatism.
	  d_teaquad11part = d_teaquad11part - 90000

	  'old method PIVCOM
	  dpow d_teaquadone, 10, 15
	  d_mod1 = d_teaquad11part % 210
	  d_mod2 = d_teaquadone % 210 * d_teaquadmult
	  d_mod3 = d_mod1 + d_mod2 % 210
	  d_pivcompart = d_teaquad11part - d_mod3

	  'new method PIVCOM
	  d_mod1 = d_teaquadone % 210
	  d_mod2 = d_mod1 * d_teaquadmult + d_teaquad11part % 210
	  d_pivcompart = d_teaquad11part - d_mod2

	  'show the PIVCOM in d_teaquadmult,d_pivcompart	  
	  dg_pass1 = d_pivcompart
	  dg_pass2 = d_teaquadmult
	  sub_teaquad_to_string
	  s_pivcom = sg_pass1
	  $out "pivcom=" + s_pivcom + " " + s_2code

        'find the place to begin
        d_teaquad11part = d_pivcompart - 19
	  dift d_teaquad11part < 0
		d_teaquad11part = d_teaquad11part + 210
	  endi

	  'show begin in d_teaquadmult,d_teaquad11part
	  ded$ s_any, d_teaquad11part, 0, 0
	  s_out = "beg mult=" + d_teaquadmult + " part=" + s_any
	  $app s_out, " " + s_2code
	  $out s_out

	  $out s_dashline

        'output beginning numbers to file
        $dat s_date35
        $cut s_date17, s_date35, 1, 17

	  dg_pass1 = d_teaquad11part
	  dg_pass2 = d_teaquadmult
	  sub_teaquad_to_string
	  s_beginnumber = sg_pass1

	  'output beginning number 
        s_out = "begin=" + s_beginnumber + " " + s_date17
	  $app s_out, " " + s_afile + " " + s_2code
        $out s_out

	  'output name of afile to file
        fapp d_any, s_afile, s_out
        dbad d_any < 10

	  'output interpreter name and build
	  s_out = sg_interpreter + " " + sg_path + " " + s_2code

	  fapp d_any, s_afile, s_out
	  dbad d_any < 10

	  'output current program name and build
	  dsys d_any, 2
	  ded$ s_any, d_any, 0, 0
	  s_out = sg_build + " " + s_any + " " + s_2code
	  $out s_out
	  fapp d_any, s_afile, s_out
	  dbad d_any < 10

        'put d_qtpmaxindex primes in decimal array
	  d_qtpmaxindex = 99000
        d_number = 1669
        d_index = 1
        dwhi d_index <= d_qtpmaxindex
	      dfac d_mod1, d_number
	      dift d_mod1 = 1
		    dtoi d_index, d_number
                dinc d_index
	      endi
	      d_number = d_number + 2
        endw
	  itod d_any, 1
	  itod d_maxarrayprime, d_qtpmaxindex
	  s_any = "array from=" + d_any + " to " + d_maxarrayprime
	  $app s_any, " ct=" + d_qtpmaxindex
	  $out s_any + " " + s_afile + " " + s_2code

	  d_maxprime = d_maxarrayprime
'HERE sub_teaquad_5tp39_by_modulus_duo
    endi
    dift d_process = 1
	  $out s_dashline

	  $out "last=" + s_line
	  $out "inp= " + s_ask + " " + s_2code

	  'output beginning number
	  $out "beg= " + s_beginnumber + " " + s_2code

	  'get the maximum number to go to
	  d_teaquadmaxpart = d_teaquadone

	  dg_pass1 = d_teaquadmaxpart
	  dg_pass2 = d_teaquadmult
	  sub_teaquad_to_string
	  s_number = sg_pass1
	  $out "max= " + s_number + " " + s_2code
    endi

'HERE sub_teaquad_5tp39_by_modulus_duo

    'p49 is d_teaquad49part, d_teaquadmult not p11
    d_teaquad49part = d_teaquad11part - 210 + 38

    'adjust d_teaquad49part to make d_pivcompart mod 11 = 4 or 7
    d_pivcompart = d_teaquad49part - 19
    d_mod1 = d_teaquadone % 11 * d_teaquadmult + d_pivcompart % 11

    dift d_mod1 <= 4
	  d_any = 4 - d_mod1 * 210
	  d_teaquad49part = d_teaquad49part + d_any
	  d_y630 = 1
    else
	  dift d_mod1 <= 7
		d_any = 7 - d_mod1 * 210
	      d_teaquad49part = d_teaquad49part + d_any
		d_y630 = 2
	  else
		d_any = 15 - d_mod1 * 210
	      d_teaquad49part = d_teaquad49part + d_any
		d_y630 = 1
	  endi	  
    endi

'12345678901234567890123456789012345
'17-DEC-2002 03:56:22 20021217035622
    'get second digit of the hour to test for hour change
    $dat s_date35
    $cut s_10datehournew, s_date35, 22, 10
    $cut s_2timehournew, s_date35, 13, 2
    s_10datehourprev = "Z"
    s_2timehourprev = "X"

    d_2timehourprev = 99999

    '12345678901234567890
    '05-MAR-2009 01:05:26
    $cut s_datebegin, s_date35, 1, 17

    dift d_process = 1
	  'output begin date to file
        s_out = "date=" + s_date35 + " " + s_afile + " " + s_2code

        $out s_out
        fapp d_any, s_afile, s_out
        dbad d_any < 10

        'set the beginning s_pausehour to pause immediately
        s_pausehour = "X"

	  'build name s_pausefile and test to see if it exists
        s_pausefile = "PAUSE_" + s_2code + ".TXT"
        $cup s_pausefile, s_pausefile
        flen d_any, s_pausefile
        dift d_any >= 0
	      $out sg_interpreter + " " + sg_path + " " + s_2code
	      dsys d_any, 2
	      ded$ s_any, d_any, 0, 0
	      $out sg_build + " " + s_any + " " + s_2code
	      $out s_pausefile + " exists " + s_2code 
	      $inp s_any, "1=purge " + s_pausefile + " " + s_2code
		$ift s_any = "*": dinc d_process
	      $ift s_any = "1": fdel d_any, s_pausefile
        endi
    endi

    'final initialization before running
    d_qtpcount = 0
    d_tothourct = 0
    d_billion = 10 ^ 9
    d_trillion = 10 ^ 12

    d_24hourct = 0
    d_24part = d_teaquad49part - 38
    d_tpd01part = d_teaquad49part - 38
    d_tpd02part = d_tpd01part
    d_tpd03part = d_tpd01part
    d_tpd04part = d_tpd01part
    'd_tpd05part = d_tpd01part
    'd_tpd06part = d_tpd01part
    'd_tpd07part = d_tpd01part
    'd_tpd08part = d_tpd01part

    'put begin lines in d_beglines
    dsys d_beglines, 2
    dsec d_begseconds

'HERE sub_teaquad_5tp39_by_modulus_duo

dift d_process = 1    
    $out sg_interpreter + " " + sg_path + " " + s_2code
    dsys d_any, 2
    ded$ s_any, d_any, 0, 0
    $out sg_build + " " + s_any + " " + s_2code

    $ch$ s_any, " ", 20
    flen d_any, s_pausefile
    dift d_any >= 0: $app s_any, s_pausefile + " exists"
    $out "now running " + s_2code + s_any

'main loop gtag here
gtag tag_nextnumber

    'increment d_primetest = first prime
    'd_teaquad49part = d_teaquad49part + 210
    dift d_y630 = 1
	  'increment by 210 * 3 = 630
        d_teaquad49part = d_teaquad49part + 630
	  dinc d_y630
    else
	  'increment by 210 * 8 = 1680
        d_teaquad49part = d_teaquad49part + 1680
	  ddec d_y630
    endi

    'mod 13
    'p49%13 must be 1, 3, 9, or 11 to be good
'd_teaquadone % 13 = 12
'd_mod1 = d_teaquadone % 13 * d_teaquadmult + d_teaquad49part % 13 
    d_mod1 = 12 * d_teaquadmult + d_teaquad49part % 13
    dift d_mod1 <> 1
	  dift d_mod1 <> 3
		dift d_mod1 <> 9
		    dift d_mod1 <> 11: goto tag_nextnumber
		endi
	  endi
    endi

    'mod 17
    'p49%17 must not be <5, 6, 8, 13, 15 to be good
'd_teaquadone % 17 = 12
'd_mod1 = d_teaquadone % 17 * d_teaquadmult + d_teaquad49part % 17 
    d_mod1 = 12 * d_teaquadmult + d_teaquad49part % 17
    dift d_mod1 < 5: goto tag_nextnumber
    dift d_mod1 = 6: goto tag_nextnumber
    dift d_mod1 = 8: goto tag_nextnumber
    dift d_mod1 = 13: goto tag_nextnumber
    dift d_mod1 = 15: goto tag_nextnumber

    'mod 19
    'p49%19 must not be <3, 6, 8, 11, 13, >16 to be good
'd_teaquadone % 19 = 8
'd_mod1 = d_teaquadone % 19 * d_teaquadmult + d_teaquad49part % 19 
    d_mod1 = 8 * d_teaquadmult + d_teaquad49part % 19
    dift d_mod1 < 3: goto tag_nextnumber
    dift d_mod1 = 6: goto tag_nextnumber
    dift d_mod1 = 8: goto tag_nextnumber
    dift d_mod1 = 11: goto tag_nextnumber
    dift d_mod1 = 13: goto tag_nextnumber
    dift d_mod1 > 16: goto tag_nextnumber

    'mod 23
    'p49%23 must not be 0, 2, >5 and <10, 13, 15, 18, 20 to be good
'd_teaquadone % 23 = 5
'd_mod1 = d_teaquadone % 23 * d_teaquadmult + d_teaquad49part % 23 
    d_mod1 = 5 * d_teaquadmult + d_teaquad49part % 23
    dift d_mod1 = 0: goto tag_nextnumber
    dift d_mod1 = 2: goto tag_nextnumber
    dift d_mod1 > 5
	  dift d_mod1 < 10: goto tag_nextnumber
    endi
    dift d_mod1 = 13: goto tag_nextnumber
    dift d_mod1 = 15: goto tag_nextnumber
    dift d_mod1 = 18: goto tag_nextnumber
    dift d_mod1 = 20: goto tag_nextnumber
  
    'mod 29
    'p49%29 must not be <4, >5 and <10, 18, 20 to be good
'd_teaquadone % 29 = 19
'd_mod1 = d_teaquadone % 29 * d_teaquadmult + d_teaquad49part % 29 
    d_mod1 = 19 * d_teaquadmult + d_teaquad49part % 29
    dift d_mod1 < 4: goto tag_nextnumber
    dift d_mod1 > 5
	  dift d_mod1 < 10: goto tag_nextnumber
    endi
    dift d_mod1 = 18: goto tag_nextnumber
    dift d_mod1 = 20: goto tag_nextnumber
  
    'mod 31
    'p49%31 must not be <3, >4 and <9, 18, 20, 30 to be good
'd_teaquadone % 31 = 1
'd_mod1 = d_teaquadone % 31 * d_teaquadmult + d_teaquad49part % 31 
    d_mod1 = d_teaquadmult + d_teaquad49part % 31
    dift d_mod1 < 3: goto tag_nextnumber
    dift d_mod1 > 4
	  dift d_mod1 < 9: goto tag_nextnumber
    endi
    dift d_mod1 = 18: goto tag_nextnumber
    dift d_mod1 = 20: goto tag_nextnumber
    dift d_mod1 = 30: goto tag_nextnumber
  
    'mod 37
    'p49%37 must not be <3, 6, 8, 18, 20, 30, 32, 36 to be good
'd_teaquadone % 37 = 1
'd_mod1 = d_teaquadone % 37 * d_teaquadmult + d_teaquad49part % 37 
    d_mod1 = d_teaquadmult + d_teaquad49part % 37
    dift d_mod1 < 3: goto tag_nextnumber
    dift d_mod1 = 6: goto tag_nextnumber
    dift d_mod1 = 8: goto tag_nextnumber
    dift d_mod1 = 18: goto tag_nextnumber
    dift d_mod1 = 20: goto tag_nextnumber
    dift d_mod1 = 30: goto tag_nextnumber
    dift d_mod1 = 32: goto tag_nextnumber
    dift d_mod1 = 36: goto tag_nextnumber
  
'HERE sub_teaquad_5tp39_by_modulus_duo
    'beginning with 41 the bad are as follows:
    'p49%41 bad are 0,2,6,8,18,20,30,32,36,38

'prime=41 count=1. E15 % 41 = 1, next prime=43
d_mod1 = d_teaquadmult + d_teaquad49part % 41
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=43 count=2. E15 % 43 = 16, next prime=47
d_mod1 = 16 * d_teaquadmult + d_teaquad49part % 43
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=47 count=3. E15 % 47 = 40, next prime=53
d_mod1 = 40 * d_teaquadmult + d_teaquad49part % 47
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=53 count=4. E15 % 53 = 47, next prime=59
d_mod1 = 47 * d_teaquadmult + d_teaquad49part % 53
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=59 count=5. E15 % 59 = 52, next prime=61
d_mod1 = 52 * d_teaquadmult + d_teaquad49part % 59
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=61 count=6. E15 % 61 = 50, next prime=67
d_mod1 = 50 * d_teaquadmult + d_teaquad49part % 61
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=67 count=7. E15 % 67 = 24, next prime=71
d_mod1 = 24 * d_teaquadmult + d_teaquad49part % 67
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=71 count=8. E15 % 71 = 37, next prime=73
d_mod1 = 37 * d_teaquadmult + d_teaquad49part % 71
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=73 count=9. E15 % 73 = 22, next prime=79
d_mod1 = 22 * d_teaquadmult + d_teaquad49part % 73
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=79 count=10. E15 % 79 = 21, next prime=83
d_mod1 = 21 * d_teaquadmult + d_teaquad49part % 79
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=83 count=11. E15 % 83 = 28, next prime=89
d_mod1 = 28 * d_teaquadmult + d_teaquad49part % 83
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=89 count=12. E15 % 89 = 69, next prime=97
d_mod1 = 69 * d_teaquadmult + d_teaquad49part % 89
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=97 count=13. E15 % 97 = 45, next prime=101
d_mod1 = 45 * d_teaquadmult + d_teaquad49part % 97
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=101 count=14. E15 % 101 = 91, next prime=103
d_mod1 = 91 * d_teaquadmult + d_teaquad49part % 101
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=103 count=15. E15 % 103 = 69, next prime=107
d_mod1 = 69 * d_teaquadmult + d_teaquad49part % 103
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=107 count=16. E15 % 107 = 39, next prime=109
d_mod1 = 39 * d_teaquadmult + d_teaquad49part % 107
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=109 count=17. E15 % 109 = 55, next prime=113
d_mod1 = 55 * d_teaquadmult + d_teaquad49part % 109
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=113 count=18. E15 % 113 = 101, next prime=127
d_mod1 = 101 * d_teaquadmult + d_teaquad49part % 113
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=127 count=19. E15 % 127 = 63, next prime=131
d_mod1 = 63 * d_teaquadmult + d_teaquad49part % 127
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=131 count=20. E15 % 131 = 71, next prime=137
d_mod1 = 71 * d_teaquadmult + d_teaquad49part % 131
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=137 count=21. E15 % 137 = 96, next prime=139
d_mod1 = 96 * d_teaquadmult + d_teaquad49part % 137
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=139 count=22. E15 % 139 = 76, next prime=149
d_mod1 = 76 * d_teaquadmult + d_teaquad49part % 139
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=149 count=23. E15 % 149 = 23, next prime=151
d_mod1 = 23 * d_teaquadmult + d_teaquad49part % 149
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=151 count=24. E15 % 151 = 59, next prime=157
d_mod1 = 59 * d_teaquadmult + d_teaquad49part % 151
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=157 count=25. E15 % 157 = 56, next prime=163
d_mod1 = 56 * d_teaquadmult + d_teaquad49part % 157
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=163 count=26. E15 % 163 = 61, next prime=167
d_mod1 = 61 * d_teaquadmult + d_teaquad49part % 163
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=167 count=27. E15 % 167 = 135, next prime=173
d_mod1 = 135 * d_teaquadmult + d_teaquad49part % 167
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=173 count=28. E15 % 173 = 43, next prime=179
d_mod1 = 43 * d_teaquadmult + d_teaquad49part % 173
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=179 count=29. E15 % 179 = 170, next prime=181
d_mod1 = 170 * d_teaquadmult + d_teaquad49part % 179
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=181 count=30. E15 % 181 = 7, next prime=191
d_mod1 = 7 * d_teaquadmult + d_teaquad49part % 181
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=191 count=31. E15 % 191 = 160, next prime=193
d_mod1 = 160 * d_teaquadmult + d_teaquad49part % 191
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=193 count=32. E15 % 193 = 13, next prime=197
d_mod1 = 13 * d_teaquadmult + d_teaquad49part % 193
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=197 count=33. E15 % 197 = 137, next prime=199
d_mod1 = 137 * d_teaquadmult + d_teaquad49part % 197
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=199 count=34. E15 % 199 = 140, next prime=211
d_mod1 = 140 * d_teaquadmult + d_teaquad49part % 199
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=211 count=35. E15 % 211 = 210, next prime=223
d_mod1 = 210 * d_teaquadmult + d_teaquad49part % 211
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=223 count=36. E15 % 223 = 95, next prime=227
d_mod1 = 95 * d_teaquadmult + d_teaquad49part % 223
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=227 count=37. E15 % 227 = 76, next prime=229
d_mod1 = 76 * d_teaquadmult + d_teaquad49part % 227
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=229 count=38. E15 % 229 = 54, next prime=233
d_mod1 = 54 * d_teaquadmult + d_teaquad49part % 229
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=233 count=39. E15 % 233 = 54, next prime=239
d_mod1 = 54 * d_teaquadmult + d_teaquad49part % 233
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=239 count=40. E15 % 239 = 10, next prime=241
d_mod1 = 10 * d_teaquadmult + d_teaquad49part % 239
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=241 count=41. E15 % 241 = 240, next prime=251
d_mod1 = 240 * d_teaquadmult + d_teaquad49part % 241
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=251 count=42. E15 % 251 = 231, next prime=257
d_mod1 = 231 * d_teaquadmult + d_teaquad49part % 251
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=257 count=43. E15 % 257 = 151, next prime=263
d_mod1 = 151 * d_teaquadmult + d_teaquad49part % 257
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=263 count=44. E15 % 263 = 77, next prime=269
d_mod1 = 77 * d_teaquadmult + d_teaquad49part % 263
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=269 count=45. E15 % 269 = 29, next prime=271
d_mod1 = 29 * d_teaquadmult + d_teaquad49part % 269
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=271 count=46. E15 % 271 = 1, next prime=277
d_mod1 = d_teaquadmult + d_teaquad49part % 271
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=277 count=47. E15 % 277 = 27, next prime=281
d_mod1 = 27 * d_teaquadmult + d_teaquad49part % 277
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=281 count=48. E15 % 281 = 271, next prime=283
d_mod1 = 271 * d_teaquadmult + d_teaquad49part % 281
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=283 count=49. E15 % 283 = 181, next prime=293
d_mod1 = 181 * d_teaquadmult + d_teaquad49part % 283
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=293 count=50. E15 % 293 = 132, next prime=307
d_mod1 = 132 * d_teaquadmult + d_teaquad49part % 293
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=307 count=51. E15 % 307 = 4, next prime=311
d_mod1 = 4 * d_teaquadmult + d_teaquad49part % 307
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=311 count=52. E15 % 311 = 89, next prime=313
d_mod1 = 89 * d_teaquadmult + d_teaquad49part % 311
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=313 count=53. E15 % 313 = 231, next prime=317
d_mod1 = 231 * d_teaquadmult + d_teaquad49part % 313
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=317 count=54. E15 % 317 = 36, next prime=331
d_mod1 = 36 * d_teaquadmult + d_teaquad49part % 317
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=331 count=55. E15 % 331 = 257, next prime=337
d_mod1 = 257 * d_teaquadmult + d_teaquad49part % 331
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=337 count=56. E15 % 337 = 35, next prime=347
d_mod1 = 35 * d_teaquadmult + d_teaquad49part % 337
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=347 count=57. E15 % 347 = 159, next prime=349
d_mod1 = 159 * d_teaquadmult + d_teaquad49part % 347
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=349 count=58. E15 % 349 = 343, next prime=353
d_mod1 = 343 * d_teaquadmult + d_teaquad49part % 349
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=353 count=59. E15 % 353 = 247, next prime=359
d_mod1 = 247 * d_teaquadmult + d_teaquad49part % 353
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=359 count=60. E15 % 359 = 94, next prime=367
d_mod1 = 94 * d_teaquadmult + d_teaquad49part % 359
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=367 count=61. E15 % 367 = 358, next prime=373
d_mod1 = 358 * d_teaquadmult + d_teaquad49part % 367
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=373 count=62. E15 % 373 = 31, next prime=379
d_mod1 = 31 * d_teaquadmult + d_teaquad49part % 373
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=379 count=63. E15 % 379 = 240, next prime=383
d_mod1 = 240 * d_teaquadmult + d_teaquad49part % 379
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=383 count=64. E15 % 383 = 97, next prime=389
d_mod1 = 97 * d_teaquadmult + d_teaquad49part % 383
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=389 count=65. E15 % 389 = 233, next prime=397
d_mod1 = 233 * d_teaquadmult + d_teaquad49part % 389
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=397 count=66. E15 % 397 = 171, next prime=401
d_mod1 = 171 * d_teaquadmult + d_teaquad49part % 397
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=401 count=67. E15 % 401 = 366, next prime=409
d_mod1 = 366 * d_teaquadmult + d_teaquad49part % 401
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=409 count=68. E15 % 409 = 51, next prime=419
d_mod1 = 51 * d_teaquadmult + d_teaquad49part % 409
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=419 count=69. E15 % 419 = 308, next prime=421
d_mod1 = 308 * d_teaquadmult + d_teaquad49part % 419
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=421 count=70. E15 % 421 = 6, next prime=431
d_mod1 = 6 * d_teaquadmult + d_teaquad49part % 421
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=431 count=71. E15 % 431 = 81, next prime=433
d_mod1 = 81 * d_teaquadmult + d_teaquad49part % 431
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=433 count=72. E15 % 433 = 390, next prime=439
d_mod1 = 390 * d_teaquadmult + d_teaquad49part % 433
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=439 count=73. E15 % 439 = 98, next prime=443
d_mod1 = 98 * d_teaquadmult + d_teaquad49part % 439
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=443 count=74. E15 % 443 = 55, next prime=449
d_mod1 = 55 * d_teaquadmult + d_teaquad49part % 443
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=449 count=75. E15 % 449 = 404, next prime=457
d_mod1 = 404 * d_teaquadmult + d_teaquad49part % 449
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=457 count=76. E15 % 457 = 377, next prime=461
d_mod1 = 377 * d_teaquadmult + d_teaquad49part % 457
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=461 count=77. E15 % 461 = 57, next prime=463
d_mod1 = 57 * d_teaquadmult + d_teaquad49part % 461
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=463 count=78. E15 % 463 = 414, next prime=467
d_mod1 = 414 * d_teaquadmult + d_teaquad49part % 463
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=467 count=79. E15 % 467 = 158, next prime=479
d_mod1 = 158 * d_teaquadmult + d_teaquad49part % 467
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=479 count=80. E15 % 479 = 393, next prime=487
d_mod1 = 393 * d_teaquadmult + d_teaquad49part % 479
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=487 count=81. E15 % 487 = 37, next prime=491
d_mod1 = 37 * d_teaquadmult + d_teaquad49part % 487
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=491 count=82. E15 % 491 = 200, next prime=499
d_mod1 = 200 * d_teaquadmult + d_teaquad49part % 491
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=499 count=83. E15 % 499 = 32, next prime=503
d_mod1 = 32 * d_teaquadmult + d_teaquad49part % 499
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=503 count=84. E15 % 503 = 272, next prime=509
d_mod1 = 272 * d_teaquadmult + d_teaquad49part % 503
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=509 count=85. E15 % 509 = 349, next prime=521
d_mod1 = 349 * d_teaquadmult + d_teaquad49part % 509
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=521 count=86. E15 % 521 = 55, next prime=523
d_mod1 = 55 * d_teaquadmult + d_teaquad49part % 521
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=523 count=87. E15 % 523 = 177, next prime=541
d_mod1 = 177 * d_teaquadmult + d_teaquad49part % 523
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=541 count=88. E15 % 541 = 451, next prime=547
d_mod1 = 451 * d_teaquadmult + d_teaquad49part % 541
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=547 count=89. E15 % 547 = 247, next prime=557
d_mod1 = 247 * d_teaquadmult + d_teaquad49part % 547
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=557 count=90. E15 % 557 = 135, next prime=563
d_mod1 = 135 * d_teaquadmult + d_teaquad49part % 557
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=563 count=91. E15 % 563 = 360, next prime=569
d_mod1 = 360 * d_teaquadmult + d_teaquad49part % 563
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=569 count=92. E15 % 569 = 128, next prime=571
d_mod1 = 128 * d_teaquadmult + d_teaquad49part % 569
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=571 count=93. E15 % 571 = 477, next prime=577
d_mod1 = 477 * d_teaquadmult + d_teaquad49part % 571
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=577 count=94. E15 % 577 = 536, next prime=587
d_mod1 = 536 * d_teaquadmult + d_teaquad49part % 577
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=587 count=95. E15 % 587 = 488, next prime=593
d_mod1 = 488 * d_teaquadmult + d_teaquad49part % 587
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=593 count=96. E15 % 593 = 263, next prime=599
d_mod1 = 263 * d_teaquadmult + d_teaquad49part % 593
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=599 count=97. E15 % 599 = 3, next prime=601
d_mod1 = 3 * d_teaquadmult + d_teaquad49part % 599
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=601 count=98. E15 % 601 = 185, next prime=607
d_mod1 = 185 * d_teaquadmult + d_teaquad49part % 601
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=607 count=99. E15 % 607 = 70, next prime=613
d_mod1 = 70 * d_teaquadmult + d_teaquad49part % 607
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=613 count=100. E15 % 613 = 583, next prime=617
d_mod1 = 583 * d_teaquadmult + d_teaquad49part % 613
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=617 count=101. E15 % 617 = 467, next prime=619
d_mod1 = 467 * d_teaquadmult + d_teaquad49part % 617
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=619 count=102. E15 % 619 = 538, next prime=631
d_mod1 = 538 * d_teaquadmult + d_teaquad49part % 619
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=631 count=103. E15 % 631 = 458, next prime=641
d_mod1 = 458 * d_teaquadmult + d_teaquad49part % 631
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=641 count=104. E15 % 641 = 64, next prime=643
d_mod1 = 64 * d_teaquadmult + d_teaquad49part % 641
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=643 count=105. E15 % 643 = 451, next prime=647
d_mod1 = 451 * d_teaquadmult + d_teaquad49part % 643
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=647 count=106. E15 % 647 = 535, next prime=653
d_mod1 = 535 * d_teaquadmult + d_teaquad49part % 647
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=653 count=107. E15 % 653 = 9, next prime=659
d_mod1 = 9 * d_teaquadmult + d_teaquad49part % 653
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=659 count=108. E15 % 659 = 532, next prime=661
d_mod1 = 532 * d_teaquadmult + d_teaquad49part % 659
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=661 count=109. E15 % 661 = 476, next prime=673
d_mod1 = 476 * d_teaquadmult + d_teaquad49part % 661
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=673 count=110. E15 % 673 = 80, next prime=677
d_mod1 = 80 * d_teaquadmult + d_teaquad49part % 673
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=677 count=111. E15 % 677 = 58, next prime=683
d_mod1 = 58 * d_teaquadmult + d_teaquad49part % 677
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=683 count=112. E15 % 683 = 146, next prime=691
d_mod1 = 146 * d_teaquadmult + d_teaquad49part % 683
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=691 count=113. E15 % 691 = 246, next prime=701
d_mod1 = 246 * d_teaquadmult + d_teaquad49part % 691
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=701 count=114. E15 % 701 = 563, next prime=709
d_mod1 = 563 * d_teaquadmult + d_teaquad49part % 701
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=709 count=115. E15 % 709 = 13, next prime=719
d_mod1 = 13 * d_teaquadmult + d_teaquad49part % 709
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=719 count=116. E15 % 719 = 464, next prime=727
d_mod1 = 464 * d_teaquadmult + d_teaquad49part % 719
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=727 count=117. E15 % 727 = 663, next prime=733
d_mod1 = 663 * d_teaquadmult + d_teaquad49part % 727
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=733 count=118. E15 % 733 = 206, next prime=739
d_mod1 = 206 * d_teaquadmult + d_teaquad49part % 733
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=739 count=119. E15 % 739 = 296, next prime=743
d_mod1 = 296 * d_teaquadmult + d_teaquad49part % 739
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=743 count=120. E15 % 743 = 316, next prime=751
d_mod1 = 316 * d_teaquadmult + d_teaquad49part % 743
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=751 count=121. E15 % 751 = 481, next prime=757
d_mod1 = 481 * d_teaquadmult + d_teaquad49part % 751
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=757 count=122. E15 % 757 = 673, next prime=761
d_mod1 = 673 * d_teaquadmult + d_teaquad49part % 757
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=761 count=123. E15 % 761 = 420, next prime=769
d_mod1 = 420 * d_teaquadmult + d_teaquad49part % 761
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=769 count=124. E15 % 769 = 85, next prime=773
d_mod1 = 85 * d_teaquadmult + d_teaquad49part % 769
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=773 count=125. E15 % 773 = 54, next prime=787
d_mod1 = 54 * d_teaquadmult + d_teaquad49part % 773
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=787 count=126. E15 % 787 = 435, next prime=797
d_mod1 = 435 * d_teaquadmult + d_teaquad49part % 787
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=797 count=127. E15 % 797 = 73, next prime=809
d_mod1 = 73 * d_teaquadmult + d_teaquad49part % 797
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=809 count=128. E15 % 809 = 549, next prime=811
d_mod1 = 549 * d_teaquadmult + d_teaquad49part % 809
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=811 count=129. E15 % 811 = 32, next prime=821
d_mod1 = 32 * d_teaquadmult + d_teaquad49part % 811
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=821 count=130. E15 % 821 = 431, next prime=823
d_mod1 = 431 * d_teaquadmult + d_teaquad49part % 821
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=823 count=131. E15 % 823 = 475, next prime=827
d_mod1 = 475 * d_teaquadmult + d_teaquad49part % 823
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=827 count=132. E15 % 827 = 265, next prime=829
d_mod1 = 265 * d_teaquadmult + d_teaquad49part % 827
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=829 count=133. E15 % 829 = 481, next prime=839
d_mod1 = 481 * d_teaquadmult + d_teaquad49part % 829
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=839 count=134. E15 % 839 = 30, next prime=853
d_mod1 = 30 * d_teaquadmult + d_teaquad49part % 839
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=853 count=135. E15 % 853 = 585, next prime=857
d_mod1 = 585 * d_teaquadmult + d_teaquad49part % 853
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=857 count=136. E15 % 857 = 789, next prime=859
d_mod1 = 789 * d_teaquadmult + d_teaquad49part % 857
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=859 count=137. E15 % 859 = 759, next prime=863
d_mod1 = 759 * d_teaquadmult + d_teaquad49part % 859
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=863 count=138. E15 % 863 = 268, next prime=877
d_mod1 = 268 * d_teaquadmult + d_teaquad49part % 863
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=877 count=139. E15 % 877 = 124, next prime=881
d_mod1 = 124 * d_teaquadmult + d_teaquad49part % 877
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=881 count=140. E15 % 881 = 605, next prime=883
d_mod1 = 605 * d_teaquadmult + d_teaquad49part % 881
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=883 count=141. E15 % 883 = 69, next prime=887
d_mod1 = 69 * d_teaquadmult + d_teaquad49part % 883
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=887 count=142. E15 % 887 = 248, next prime=907
d_mod1 = 248 * d_teaquadmult + d_teaquad49part % 887
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=907 count=143. E15 % 907 = 502, next prime=911
d_mod1 = 502 * d_teaquadmult + d_teaquad49part % 907
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=911 count=144. E15 % 911 = 226, next prime=919
d_mod1 = 226 * d_teaquadmult + d_teaquad49part % 911
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=919 count=145. E15 % 919 = 68, next prime=929
d_mod1 = 68 * d_teaquadmult + d_teaquad49part % 919
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=929 count=146. E15 % 929 = 800, next prime=937
d_mod1 = 800 * d_teaquadmult + d_teaquad49part % 929
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=937 count=147. E15 % 937 = 812, next prime=941
d_mod1 = 812 * d_teaquadmult + d_teaquad49part % 937
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=941 count=148. E15 % 941 = 490, next prime=947
d_mod1 = 490 * d_teaquadmult + d_teaquad49part % 941
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=947 count=149. E15 % 947 = 293, next prime=953
d_mod1 = 293 * d_teaquadmult + d_teaquad49part % 947
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=953 count=150. E15 % 953 = 792, next prime=967
d_mod1 = 792 * d_teaquadmult + d_teaquad49part % 953
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=967 count=151. E15 % 967 = 903, next prime=971
d_mod1 = 903 * d_teaquadmult + d_teaquad49part % 967
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=971 count=152. E15 % 971 = 716, next prime=977
d_mod1 = 716 * d_teaquadmult + d_teaquad49part % 971
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=977 count=153. E15 % 977 = 844, next prime=983
d_mod1 = 844 * d_teaquadmult + d_teaquad49part % 977
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=983 count=154. E15 % 983 = 405, next prime=991
d_mod1 = 405 * d_teaquadmult + d_teaquad49part % 983
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=991 count=155. E15 % 991 = 580, next prime=997
d_mod1 = 580 * d_teaquadmult + d_teaquad49part % 991
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=997 count=156. E15 % 997 = 243, next prime=1009
d_mod1 = 243 * d_teaquadmult + d_teaquad49part % 997
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1009 count=157. E15 % 1009 = 482, next prime=1013
d_mod1 = 482 * d_teaquadmult + d_teaquad49part % 1009
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1013 count=158. E15 % 1013 = 478, next prime=1019
d_mod1 = 478 * d_teaquadmult + d_teaquad49part % 1013
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1019 count=159. E15 % 1019 = 71, next prime=1021
d_mod1 = 71 * d_teaquadmult + d_teaquad49part % 1019
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1021 count=160. E15 % 1021 = 920, next prime=1031
d_mod1 = 920 * d_teaquadmult + d_teaquad49part % 1021
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1031 count=161. E15 % 1031 = 688, next prime=1033
d_mod1 = 688 * d_teaquadmult + d_teaquad49part % 1031
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1033 count=162. E15 % 1033 = 845, next prime=1039
d_mod1 = 845 * d_teaquadmult + d_teaquad49part % 1033
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1039 count=163. E15 % 1039 = 483, next prime=1049
d_mod1 = 483 * d_teaquadmult + d_teaquad49part % 1039
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1049 count=164. E15 % 1049 = 520, next prime=1051
d_mod1 = 520 * d_teaquadmult + d_teaquad49part % 1049
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1051 count=165. E15 % 1051 = 182, next prime=1061
d_mod1 = 182 * d_teaquadmult + d_teaquad49part % 1051
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1061 count=166. E15 % 1061 = 17, next prime=1063
d_mod1 = 17 * d_teaquadmult + d_teaquad49part % 1061
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1063 count=167. E15 % 1063 = 454, next prime=1069
d_mod1 = 454 * d_teaquadmult + d_teaquad49part % 1063
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1069 count=168. E15 % 1069 = 102, next prime=1087
d_mod1 = 102 * d_teaquadmult + d_teaquad49part % 1069
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1087 count=169. E15 % 1087 = 1023, next prime=1091
d_mod1 = 1023 * d_teaquadmult + d_teaquad49part % 1087
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1091 count=170. E15 % 1091 = 1078, next prime=1093
d_mod1 = 1078 * d_teaquadmult + d_teaquad49part % 1091
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1093 count=171. E15 % 1093 = 99, next prime=1097
d_mod1 = 99 * d_teaquadmult + d_teaquad49part % 1093
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1097 count=172. E15 % 1097 = 974, next prime=1103
d_mod1 = 974 * d_teaquadmult + d_teaquad49part % 1097
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1103 count=173. E15 % 1103 = 1033, next prime=1109
d_mod1 = 1033 * d_teaquadmult + d_teaquad49part % 1103
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1109 count=174. E15 % 1109 = 944, next prime=1117
d_mod1 = 944 * d_teaquadmult + d_teaquad49part % 1109
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1117 count=175. E15 % 1117 = 111, next prime=1123
d_mod1 = 111 * d_teaquadmult + d_teaquad49part % 1117
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1123 count=176. E15 % 1123 = 641, next prime=1129
d_mod1 = 641 * d_teaquadmult + d_teaquad49part % 1123
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1129 count=177. E15 % 1129 = 889, next prime=1151
d_mod1 = 889 * d_teaquadmult + d_teaquad49part % 1129
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1151 count=178. E15 % 1151 = 1132, next prime=1153
d_mod1 = 1132 * d_teaquadmult + d_teaquad49part % 1151
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1153 count=179. E15 % 1153 = 386, next prime=1163
d_mod1 = 386 * d_teaquadmult + d_teaquad49part % 1153
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1163 count=180. E15 % 1163 = 1146, next prime=1171
d_mod1 = 1146 * d_teaquadmult + d_teaquad49part % 1163
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1171 count=181. E15 % 1171 = 223, next prime=1181
d_mod1 = 223 * d_teaquadmult + d_teaquad49part % 1171
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1181 count=182. E15 % 1181 = 476, next prime=1187
d_mod1 = 476 * d_teaquadmult + d_teaquad49part % 1181
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1187 count=183. E15 % 1187 = 950, next prime=1193
d_mod1 = 950 * d_teaquadmult + d_teaquad49part % 1187
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1193 count=184. E15 % 1193 = 363, next prime=1201
d_mod1 = 363 * d_teaquadmult + d_teaquad49part % 1193
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1201 count=185. E15 % 1201 = 890, next prime=1213
d_mod1 = 890 * d_teaquadmult + d_teaquad49part % 1201
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1213 count=186. E15 % 1213 = 562, next prime=1217
d_mod1 = 562 * d_teaquadmult + d_teaquad49part % 1213
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1217 count=187. E15 % 1217 = 105, next prime=1223
d_mod1 = 105 * d_teaquadmult + d_teaquad49part % 1217
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1223 count=188. E15 % 1223 = 1111, next prime=1229
d_mod1 = 1111 * d_teaquadmult + d_teaquad49part % 1223
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1229 count=189. E15 % 1229 = 62, next prime=1231
d_mod1 = 62 * d_teaquadmult + d_teaquad49part % 1229
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1231 count=190. E15 % 1231 = 121, next prime=1237
d_mod1 = 121 * d_teaquadmult + d_teaquad49part % 1231
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1237 count=191. E15 % 1237 = 524, next prime=1249
d_mod1 = 524 * d_teaquadmult + d_teaquad49part % 1237
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1249 count=192. E15 % 1249 = 1159, next prime=1259
d_mod1 = 1159 * d_teaquadmult + d_teaquad49part % 1249
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1259 count=193. E15 % 1259 = 176, next prime=1277
d_mod1 = 176 * d_teaquadmult + d_teaquad49part % 1259
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1277 count=194. E15 % 1277 = 1069, next prime=1279
d_mod1 = 1069 * d_teaquadmult + d_teaquad49part % 1277
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1279 count=195. E15 % 1279 = 612, next prime=1283
d_mod1 = 612 * d_teaquadmult + d_teaquad49part % 1279
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1283 count=196. E15 % 1283 = 204, next prime=1289
d_mod1 = 204 * d_teaquadmult + d_teaquad49part % 1283
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1289 count=197. E15 % 1289 = 1059, next prime=1291
d_mod1 = 1059 * d_teaquadmult + d_teaquad49part % 1289
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1291 count=198. E15 % 1291 = 373, next prime=1297
d_mod1 = 373 * d_teaquadmult + d_teaquad49part % 1291
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1297 count=199. E15 % 1297 = 390, next prime=1301
d_mod1 = 390 * d_teaquadmult + d_teaquad49part % 1297
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1301 count=200. E15 % 1301 = 930, next prime=1303
d_mod1 = 930 * d_teaquadmult + d_teaquad49part % 1301
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1303 count=201. E15 % 1303 = 405, next prime=1307
d_mod1 = 405 * d_teaquadmult + d_teaquad49part % 1303
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1307 count=202. E15 % 1307 = 598, next prime=1319
d_mod1 = 598 * d_teaquadmult + d_teaquad49part % 1307
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1319 count=203. E15 % 1319 = 682, next prime=1321
d_mod1 = 682 * d_teaquadmult + d_teaquad49part % 1319
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1321 count=204. E15 % 1321 = 1074, next prime=1327
d_mod1 = 1074 * d_teaquadmult + d_teaquad49part % 1321
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1327 count=205. E15 % 1327 = 701, next prime=1361
d_mod1 = 701 * d_teaquadmult + d_teaquad49part % 1327
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1361 count=206. E15 % 1361 = 1023, next prime=1367
d_mod1 = 1023 * d_teaquadmult + d_teaquad49part % 1361
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1367 count=207. E15 % 1367 = 503, next prime=1373
d_mod1 = 503 * d_teaquadmult + d_teaquad49part % 1367
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1373 count=208. E15 % 1373 = 642, next prime=1381
d_mod1 = 642 * d_teaquadmult + d_teaquad49part % 1373
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1381 count=209. E15 % 1381 = 18, next prime=1399
d_mod1 = 18 * d_teaquadmult + d_teaquad49part % 1381
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1399 count=210. E15 % 1399 = 459, next prime=1409
d_mod1 = 459 * d_teaquadmult + d_teaquad49part % 1399
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1409 count=211. E15 % 1409 = 1268, next prime=1423
d_mod1 = 1268 * d_teaquadmult + d_teaquad49part % 1409
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1423 count=212. E15 % 1423 = 1245, next prime=1427
d_mod1 = 1245 * d_teaquadmult + d_teaquad49part % 1423
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1427 count=213. E15 % 1427 = 1036, next prime=1429
d_mod1 = 1036 * d_teaquadmult + d_teaquad49part % 1427
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1429 count=214. E15 % 1429 = 151, next prime=1433
d_mod1 = 151 * d_teaquadmult + d_teaquad49part % 1429
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1433 count=215. E15 % 1433 = 1070, next prime=1439
d_mod1 = 1070 * d_teaquadmult + d_teaquad49part % 1433
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1439 count=216. E15 % 1439 = 821, next prime=1447
d_mod1 = 821 * d_teaquadmult + d_teaquad49part % 1439
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1447 count=217. E15 % 1447 = 615, next prime=1451
d_mod1 = 615 * d_teaquadmult + d_teaquad49part % 1447
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1451 count=218. E15 % 1451 = 903, next prime=1453
d_mod1 = 903 * d_teaquadmult + d_teaquad49part % 1451
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1453 count=219. E15 % 1453 = 806, next prime=1459
d_mod1 = 806 * d_teaquadmult + d_teaquad49part % 1453
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1459 count=220. E15 % 1459 = 501, next prime=1471
d_mod1 = 501 * d_teaquadmult + d_teaquad49part % 1459
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1471 count=221. E15 % 1471 = 113, next prime=1481
d_mod1 = 113 * d_teaquadmult + d_teaquad49part % 1471
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1481 count=222. E15 % 1481 = 80, next prime=1483
d_mod1 = 80 * d_teaquadmult + d_teaquad49part % 1481
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1483 count=223. E15 % 1483 = 1065, next prime=1487
d_mod1 = 1065 * d_teaquadmult + d_teaquad49part % 1483
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1487 count=224. E15 % 1487 = 1231, next prime=1489
d_mod1 = 1231 * d_teaquadmult + d_teaquad49part % 1487
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1489 count=225. E15 % 1489 = 393, next prime=1493
d_mod1 = 393 * d_teaquadmult + d_teaquad49part % 1489
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1493 count=226. E15 % 1493 = 69, next prime=1499
d_mod1 = 69 * d_teaquadmult + d_teaquad49part % 1493
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1499 count=227. E15 % 1499 = 105, next prime=1511
d_mod1 = 105 * d_teaquadmult + d_teaquad49part % 1499
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1511 count=228. E15 % 1511 = 70, next prime=1523
d_mod1 = 70 * d_teaquadmult + d_teaquad49part % 1511
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1523 count=229. E15 % 1523 = 194, next prime=1531
d_mod1 = 194 * d_teaquadmult + d_teaquad49part % 1523
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1531 count=230. E15 % 1531 = 129, next prime=1543
d_mod1 = 129 * d_teaquadmult + d_teaquad49part % 1531
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1543 count=231. E15 % 1543 = 59, next prime=1549
d_mod1 = 59 * d_teaquadmult + d_teaquad49part % 1543
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1549 count=232. E15 % 1549 = 1473, next prime=1553
d_mod1 = 1473 * d_teaquadmult + d_teaquad49part % 1549
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1553 count=233. E15 % 1553 = 893, next prime=1559
d_mod1 = 893 * d_teaquadmult + d_teaquad49part % 1553
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1559 count=234. E15 % 1559 = 593, next prime=1567
d_mod1 = 593 * d_teaquadmult + d_teaquad49part % 1559
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1567 count=235. E15 % 1567 = 1043, next prime=1571
d_mod1 = 1043 * d_teaquadmult + d_teaquad49part % 1567
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1571 count=236. E15 % 1571 = 612, next prime=1579
d_mod1 = 612 * d_teaquadmult + d_teaquad49part % 1571
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1579 count=237. E15 % 1579 = 1425, next prime=1583
d_mod1 = 1425 * d_teaquadmult + d_teaquad49part % 1579
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1583 count=238. E15 % 1583 = 1035, next prime=1597
d_mod1 = 1035 * d_teaquadmult + d_teaquad49part % 1583
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1597 count=239. E15 % 1597 = 379, next prime=1601
d_mod1 = 379 * d_teaquadmult + d_teaquad49part % 1597
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1601 count=240. E15 % 1601 = 212, next prime=1607
d_mod1 = 212 * d_teaquadmult + d_teaquad49part % 1601
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1607 count=241. E15 % 1607 = 1540, next prime=1609
d_mod1 = 1540 * d_teaquadmult + d_teaquad49part % 1607
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1609 count=242. E15 % 1609 = 416, next prime=1613
d_mod1 = 416 * d_teaquadmult + d_teaquad49part % 1609
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1613 count=243. E15 % 1613 = 1397, next prime=1619
d_mod1 = 1397 * d_teaquadmult + d_teaquad49part % 1613
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1619 count=244. E15 % 1619 = 1307, next prime=1621
d_mod1 = 1307 * d_teaquadmult + d_teaquad49part % 1619
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1621 count=245. E15 % 1621 = 74, next prime=1627
d_mod1 = 74 * d_teaquadmult + d_teaquad49part % 1621
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1627 count=246. E15 % 1627 = 437, next prime=1637
d_mod1 = 437 * d_teaquadmult + d_teaquad49part % 1627
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1637 count=247. E15 % 1637 = 525, next prime=1657
d_mod1 = 525 * d_teaquadmult + d_teaquad49part % 1637
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1657 count=248. E15 % 1657 = 250, next prime=1663
d_mod1 = 250 * d_teaquadmult + d_teaquad49part % 1657
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1663 count=249. E15 % 1663 = 1474, next prime=1667
d_mod1 = 1474 * d_teaquadmult + d_teaquad49part % 1663
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1667 count=250. E15 % 1667 = 335, next prime=1669
d_mod1 = 335 * d_teaquadmult + d_teaquad49part % 1667
dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

'prime=1669 this is the next prime
'big mod loop below
'HERE sub_teaquad_5tp39_by_modulus_duo

    '1669 is in the array with index=1 with 99000 to d_qtpmaxindex
d_index = 1

gtag tag_nextindex
    itod d_div, d_index

'd_teaquadone is 10^15
d_mod1=d_teaquadone % d_div * d_teaquadmult + d_teaquad49part % d_div

dift d_mod1 < 39
  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_nextnumber
      dift d_mod1 = 2: goto tag_nextnumber
      dift d_mod1 = 6: goto tag_nextnumber
    else
      dift d_mod1 = 8: goto tag_nextnumber
      dift d_mod1 = 18: goto tag_nextnumber
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_nextnumber
      dift d_mod1 = 30: goto tag_nextnumber
    else
      dift d_mod1 = 32: goto tag_nextnumber
      dift d_mod1 = 36: goto tag_nextnumber
      dift d_mod1 = 38: goto tag_nextnumber
    endi
  endi
endi

    dinc d_index
dift d_index <= d_qtpmaxindex: goto tag_nextindex

'big mod loop above 
'HERE sub_teaquad_5tp39_by_modulus_duo

    'test the p11,p13 duo
    d_teaquad11part = d_teaquad49part - 38
    dduo d_duofactor, d_teaquad11part, d_teaquadmult

    dift d_duofactor <> 1
	  dift d_duofactor <= d_maxprime
		s_out = "duofactor=" + d_duofactor
		$app s_out, " less than=" + d_maxprime
		$app s_out, " num=" + d_teaquadmult + " "
		$app s_out, d_teaquad11part
		$out s_out
  	      fapp d_any, s_afile, s_out
	  endi

	  goto tag_nextnumber
    endi

'12345678901234567890123456789012345
'17-DEC-2002 03:56:22 20021217035622
    'get s_10datehournew to test for hour change
    $dat s_duodate35
    $cut s_10datehournew, s_duodate35, 22, 10

    ded$ s_any, d_teaquad11part, 26, 0
    $sho s_any + " " + s_duodate35

    $ift s_10datehournew <> s_10datehourprev
'new hour 
'HERE sub_teaquad_5tp39_by_modulus_duo

	  'increment d_tothourct,d_24hourct
	  dinc d_tothourct
	  dinc d_24hourct

	  s_10datehourprev = s_10datehournew

        dg_pass1 = d_teaquad11part
        dg_pass2 = d_teaquadmult
        sub_teaquad_to_string
        s_primetest = sg_pass1

	  '12345678901234567890123456789012345
	  '17-DEC-2002 03:56:22 20021217035622
        'get hour that is 2 long
        $cut s_2timehournew, s_duodate35, 13, 2

	  'we have new hour
	  'is there a sequence problem with it
        $tod d_2timehournew, s_2timehournew

	  d_2timehourprev = d_2timehournew
	  s_2timehourprev = s_2timehournew

	  'initialize d_24part,d_24hourct 
	  'for p24=previous 24 hours tpd
	  'initialize for tpd also
	  dift d_tothourct = 1
		d_24part = d_teaquad11part
		d_24hourct = 0
	  endi

	  'find true tpd average over four hours
	  d_tap = d_teaquad11part - d_tpd04part / d_trillion
	  dift d_tap < 0: d_tap = d_tap + 1000

	  'roll hours
	  'd_tpd08part = d_tpd07part
	  'd_tpd07part = d_tpd06part
	  'd_tpd06part = d_tpd05part
	  'd_tpd05part = d_tpd04part
	  d_tpd04part = d_tpd03part
	  d_tpd03part = d_tpd02part
	  d_tpd02part = d_tpd01part
        d_tpd01part = d_teaquad11part

        'd_tap is delta for four hours so mult by 6
        d_tpdrate = d_tap * 6

	  'change d_tpdrate to s_tpdrate with 3 decimals
	  dto$ s_tpdrate, d_tpdrate, 5, 1

        'get s_date17
        $cut s_date17, s_duodate35, 1, 17

	  'build up hour output line in s_hrline
        s_hrline = s_primetest + " " + s_date17 + " " + s_2code
	  $app s_hrline, " tpd=" + s_tpdrate + " " + d_tothourct
	  $app s_hrline, " " + d_qtpcount

	  fapp d_any, s_afile, s_hrline
	  dbad d_any < 10

        $out s_hrline

	  'save s_hrline in s_sholine
	  s_sholine = s_hrline

	  $ift s_2timehournew = "07"
'HERE sub_teaquad_5tp39_by_modulus_duo

		$out s_dashline

		'find tpd for last 24 hours = d_p24 which is per 24
		d_tap = d_teaquad11part - d_24part / d_trillion
		dift d_tap < 0: d_tap = d_tap + 1000

            dift d_24hourct > 0
		    'prorate to 24 hours
	          d_tap = d_tap / d_24hourct * 24
            else
	          d_tap = 0
            endi
		dto$ s_tap, d_tap, 3, 1

		'initialize d_24part and d_24hourct for next 24 hours
		d_24part = d_teaquad11part
		d_24hourct = 0
	 
		'output begin info
		s_out = "beg=" + s_datebegin
		$app s_out, " at=" + s_beginnumber
		$app s_out, " " + s_2code + " p24=" + s_tap
	      $out s_out
	      fapp d_any, s_afile, s_out
	      dbad d_any < 10

		'12345678901234567890
		'oklatea.exe build 523 2008/03/17
		'oklaprim.tea build=532 2008/03/15

	      'include interpreter path and name with array size
		s_out = sg_interpreter + " " + sg_path
		$app s_out, " " + d_qtpcount
	      fapp d_any, s_afile, s_out
	      dbad d_any < 10
		$out s_out

		'output oklaprim.tea build and lines
		'get the lines of Teapro
		dsys d_any, 2
		ded$ s_any, d_any, 0, 0
		s_out = sg_build + " " + s_any + " " + s_2code
		$out s_out
	      fapp d_any, s_afile, s_out
	      dbad d_any < 10

		$out s_dashline

		'output the hour line again
		$out s_hrline

		'above is if hour = 00
	  endi

'12345678901234567890123456789012345
'17-DEC-2002 03:56:22 20021217035622

	  $ift s_2timehournew <> s_pausehour
'HERE sub_teaquad_5tp39_by_modulus_duo

	      'pause if s_pausefile exists
	      flen d_any, s_pausefile
	      dift d_any >= 0
		    'get total lines
		    $out sg_interpreter + " " + sg_path + " " + s_2code
		    dsys d_any, 2
		    ded$ s_any, d_any, 0, 0
		    $out sg_build + " " + s_any + " " + s_2code
		    $out s_sholine
		    s_any = s_pausefile + " exists, enter y to continue"
		    $app s_any, " " + s_2code
		    $out s_any

		    sub_input_yes_or_asterisk

		    flen d_any, s_pausefile
		    dift d_any >= 0
		        s_out = sg_interpreter + " " + sg_path
			  $app s_out, " " + s_2code
			  $out s_out

		        dsys d_any, 2
		        ded$ s_any, d_any, 0, 0
		        $out sg_build + " " + s_any + " " + s_2code

			  $out s_sholine
		        $dat s_date35
		        $cut s_date17, s_date35, 1, 17
			  s_out = s_pausefile + " exists "
			  $app s_out, s_date17 + " " + s_2code
			  $out s_out

			  s_out = "1=purge " + s_pausefile + " " + s_2code
			  $inp s_any, s_out

			  $ift s_any = "*": endp
			  $ift s_any = "1": fdel d_any, s_pausefile
		    endi

		    $dat s_date35
		    $cut s_date17, s_date35, 1, 17
		    $out sg_build + " " + s_date17 + " " + s_2code
		    $out "continuing " + s_date17 + " " + s_2code
		    $out s_sholine
	      endi

		'12345678901234567890
		'05-MAR-2009 01:05:26
		$dat s_date35
		$cut s_pausehour, s_date35, 13, 2
	  endi

	  'above means if new hour    
    endi

    dift d_teaquad11part > d_teaquadmaxpart
'HERE sub_teaquad_5tp39_by_modulus_duo
    'we are at the end of a quadrillion

'12345678901234567890123456789012345
'17-DEC-2002 03:56:22 20021217035622
        'get s_date17
        $dat s_duodate35
        $cut s_date17, s_duodate35, 1, 17

        dg_pass1 = d_teaquad11part
        dg_pass2 = d_teaquadmult
        sub_teaquad_to_string
        s_primetest = sg_pass1

	  'we are at end of this session of numbers
	  'd_teaquadmaxpart is d_teaquadone

	  'begin date and number
	  s_out = "beg=" + s_datebegin
	  $app s_out, " at=" + s_beginnumber
	  $app s_out, " " + s_afile + " " + s_2code
	  $out s_out
	  fapp d_any, s_afile, s_out
	  dbad d_any < 10
	  fapp d_any, s_bfile, s_out
	  dbad d_any < 10

	  'end date and number
	  s_out = "end=" + s_date17 + " at=" + s_primetest
	  $app s_out, " " + s_2code
	  $out s_out
	  fapp d_any, s_afile, s_out
	  dbad d_any < 10
	  fapp d_any, s_bfile, s_out
	  dbad d_any < 10

	  'output afile name and line count
	  dsys d_any, 2
	  ded$ s_any, d_any, 0, 0
	  s_out = s_afile + " lines=" + s_any
	  $app s_out, " " + s_2code
	  $out s_out
	  fapp d_any, s_afile, s_out
	  dbad d_any < 10

	  'output interpreter path and name
	  s_out = sg_interpreter + " " + sg_path
	  $app s_out, " " + s_2code
	  $out s_out
	  fapp d_any, s_afile, s_out
	  dbad d_any = 10
	  fapp d_any, s_bfile, s_out
	  dbad d_any < 10

	  'output Teapro program name, build and lines run
	  dsys d_any, 2
	  ded$ s_any, d_any, 0, 0
	  s_out = sg_build + " " + s_any + " " + s_2code
	  $out s_out
	  fapp d_any, s_afile, s_out
	  dbad d_any < 10
	  fapp d_any, s_bfile, s_out
	  dbad d_any < 10

	  'output previous s_hrline to s_afile
	  fapp d_any, s_afile, s_hrline
	  dbad d_any < 10

	  'output current prime Teaquad number
        dg_pass1 = d_teaquad11part
        dg_pass2 = d_teaquadmult
        sub_teaquad_to_string
        s_primetest = sg_pass1

	  'build up s_sholine
        s_sholine = s_primetest + " " + s_date17 + " " + s_2code
        $app s_sholine, " tpd=" + s_tpdrate + " " + d_tothourct
	  $app s_sholine, " " + d_qtpcount
        $out s_sholine

	  'if j1,j2,u1,u2 we do not want to end program
	  '123456789012
	  'qtp20j1a.txt
        $cut s_any, s_afile, 6, 1

	  d_dot = 1
	  $ift s_any = "j": dinc d_dot
	  $ift s_any = "u": dinc d_dot

	  dift d_dot = 1
		'end running and wait for an asterisk
		$out "end of a quadrillion"
		sub_input_yes_or_asterisk

		'endp anyway
		endp
	  endi

	  'if continuing we need to bump d_teaquadmaxpart
	  'd_teaquadmaxpart is always d_teaquadone
	  'd_teaquadone is 1E15 or 10^15
	  dinc d_teaquadmult

	  d_teaquad11part = d_teaquad11part - d_teaquadone
	  d_teaquad49part = d_teaquad49part - d_teaquadone

	  '12345678901234567890123456789012345
	  '17-DEC-2002 03:56:22 20021217035622
        'get s_10datehournew to test for hour change
        $dat s_date35
        s_10datehournew = "X"
	  s_10datehourprev = "Y"
        $cut s_2timehournew, s_date35, 13, 2
	  s_2timehourprev = s_2timehournew

	  'initialize various counters
	  d_tothourct = 0
	  d_qtpcount = 0

	  'above is if d_teaquadpart > d_teaquadone
    endi

    'test the p17,p19 duo
'HERE sub_teaquad_5tp39_by_modulus_duo

    d_teaquadpart = d_teaquad11part + 6
    dduo d_duofactor, d_teaquadpart, d_teaquadmult
    dift d_duofactor <> 1
	  dift d_duofactor <= d_maxprime
		s_out = "duofactor=" + d_duofactor
		$app s_out, " less than=" + d_maxprime
		$app s_out, " num=" + d_teaquadmult + " "
		$app s_out, d_teaquadpart

		$out s_out
  	      fapp d_any, s_afile, s_out
		dbad d_any < 10
	  endi

	  goto tag_nextnumber
    endi

    'test the p29,p31 duo
    d_teaquadpart = d_teaquad11part + 18
    dduo d_duofactor, d_teaquadpart, d_teaquadmult
    dift d_duofactor <> 1
	  dift d_duofactor <= d_maxprime
		s_out = "duofactor=" + d_duofactor
		$app s_out, " less than=" + d_maxprime
		$app s_out, " num=" + d_teaquadmult + " "
		$app s_out, d_teaquadpart

		$out s_out
  	      fapp d_any, s_afile, s_out
		dbad d_any < 10
	  endi

	  goto tag_nextnumber
    endi

    'test the p41,p43 duo
    d_teaquadpart = d_teaquad11part + 30
    dduo d_duofactor, d_teaquadpart, d_teaquadmult
    dift d_duofactor <> 1
	  dift d_duofactor <= d_maxprime
		s_out = "duofactor=" + d_duofactor
		$app s_out, " less than=" + d_maxprime
		$app s_out, " num=" + d_teaquadmult + " "
		$app s_out, d_teaquadpart

		$out s_out
  	      fapp d_any, s_afile, s_out
		dbad d_any < 10
	  endi

	  goto tag_nextnumber
    endi
					 	
    'test the p47,p49 duo
    d_teaquadpart = d_teaquad11part + 36
    dduo d_duofactor, d_teaquadpart, d_teaquadmult
    dift d_duofactor <> 1
	  dift d_duofactor <= d_maxprime
		s_out = "duofactor=" + d_duofactor
		$app s_out, " less than=" + d_maxprime
		$app s_out, " num=" + d_teaquadmult + " "
		$app s_out, d_teaquadpart

		$out s_out
  	      fapp d_any, s_afile, s_out
		dbad d_any < 10
	  endi

	  goto tag_nextnumber
    endi

    'we have a 5TP39
'HERE sub_teaquad_5tp39_by_modulus_duo

    'we have a teaquad 5TP39
    dinc d_qtpcount

    dg_pass1 = d_teaquad11part
    dg_pass2 = d_teaquadmult
    sub_teaquad_to_string
    s_primetest = sg_pass1

    'show the just found 5TP39 using s_duodate35
    $cut s_date17, s_duodate35, 1, 17

    'output the 5tp39 to both files and the screen
    d_dot = d_tpdrate \ 1
    s_out = "] 000:5TP39= " + s_primetest + " " + s_date17 
    $app s_out, " " + s_2code + " " + d_dot + " " + d_qtpcount

    fapp d_any, s_bfile, s_out
    dbad d_any < 10

    fapp d_any, s_afile, s_out
    dbad d_any < 10

    $out s_out

    'output the number to the 'a' file for a possible restart
    'build up s_sholine
    s_sholine = s_primetest + " " + s_date17 + " " + s_2code
    $app s_sholine, " tpd=" + s_tpdrate
    $app s_sholine, " " + d_tothourct + " " + d_qtpcount
    fapp d_any, s_afile, s_sholine
    dbad d_any < 6


    dift d_qtptest = 1
'HERE sub_teaquad_5tp39_by_modulus_duo
        'output build,lines,seconds
        dsec d_dot
	  d_dot = d_dot - d_begseconds

	  s_out = s_dashline
        $out s_out
        fapp d_any, s_afile, s_out
        dbad d_any < 6

	  'begin date
	  s_out = s_datebegin
        $out s_out
        fapp d_any, s_afile, s_out
        dbad d_any < 6

	  'now date
	  $dat s_out
	  $cut s_out, s_out, 1, 17
        $out s_out
        fapp d_any, s_afile, s_out
        dbad d_any < 6

	  s_out = sg_interpreter + " " + sg_path
        $out s_out
        fapp d_any, s_afile, s_out
        dbad d_any < 6

        dsys d_any, 2
	  d_any = d_any - d_beglines
        ded$ s_any, d_any, 0, 0

        s_out = sg_build + " " + s_any 
	  $app s_out, " " + d_dot + " " + s_2code
        $out s_out
        fapp d_any, s_afile, s_out
        dbad d_any < 6

	  s_out = s_dashline
        $out s_out
        fapp d_any, s_afile, s_out
        dbad d_any < 6

        $out "y=continue"
        sub_input_yes_or_asterisk
    endi

    goto tag_nextnumber
endi
gtag tag_endsubr
ends sub_teaquad_5tp39_by_modulus_duo


subr sub_5tp39_test_with_prime
'updated 2010/04/19
'vari dg_modprime, dg_resultprime

  dift dg_modprime < 19
    dift dg_modprime < 7
      dift dg_modprime = 0: dinc dg_resultprime
      dift dg_modprime = 2: dinc dg_resultprime
      dift dg_modprime = 6: dinc dg_resultprime
    else
      dift dg_modprime = 8: dinc dg_resultprime
      dift dg_modprime = 18: dinc dg_resultprime
    endi
  else
    dift dg_modprime < 32
      dift dg_modprime = 20: dinc dg_resultprime
      dift dg_modprime = 30: dinc dg_resultprime
    else
      dift dg_modprime = 32: dinc dg_resultprime
      dift dg_modprime = 36: dinc dg_resultprime
      dift dg_modprime = 38: dinc dg_resultprime
    endi
  endi
ends sub_5tp39_test_with_prime


subr sub_pause_file_build_delete
'updated 2010/08/21, 2010/07/31, 2010/07/12, 2010/05/12
'2010/05/05, 2010/05/04, 2010/05/03, 2010/04/01, 2010/03/28
    vari d_any, s_any, d_dot, s_dot
    vari s_pausefile, s_2code, d_good, d_loop
    vari s_choice, s_line

    d_loop = 1
    dwhi d_loop = 1
	  $out sg_build
	  sub_pause_file_list

        d_good = 1
        dift d_good = 1
		$dat s_any
		$cut s_any, s_any, 1, 17
	      s_dot = "enter 2code ie. t4   " + s_any
		$inp s_2code, s_dot
	      $ift s_2code = "*"
		    dinc d_good
		    dinc d_loop
		endi
	      $tup s_2code, s_2code
	      $len d_any, s_2code
	      dift d_any <> 2: dinc d_good
        endi
        dift d_good = 1
	      s_pausefile = "PAUSE_" + s_2code + ".TXT"
		$tup s_pausefile, s_pausefile

	      flen d_any, s_pausefile
	      dift d_any >= 0: $out s_pausefile + " exists"
	      dift d_any < 0: $out s_pausefile + " does not exist"

	      $inp s_choice, "1=build, 2=delete"
	      $ift s_choice = "*"
		    dinc d_good
		    dinc d_loop
		endi
        endi
        dift d_good = 1
	      $ift s_choice = "1"
		    'build s_pausefile
		    fdel d_any, s_pausefile

		    $dat s_any
		    $cut s_any, s_any, 1, 17
		    s_line = s_pausefile + " " + s_any
		    $out s_line

		    fout d_any, s_pausefile, s_line
		endi
		$ift s_choice = "2"
		    'delete s_pausefile
		    fdel d_any, s_pausefile
	      endi
        endi
    endw
ends sub_pause_file_build_delete


subr sub_pause_file_list
'updated 2010/07/31, 2010/06/21, 2010/05/12
    vari d_any, s_any, d_dot, s_dot
    vari s_pausefile, s_2code, s_all2codes, d_byte
    vari d_loop, s_line, d_long, d_process

    s_all2codes = "a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,"
    $app s_all2codes, "g0,g1,g2,g3,g4,g5,g6,g7,g8,g9,"
    $app s_all2codes, "t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,"
    $app s_all2codes, "n0,n1,n2,n3,n4,n5,h1,h2,h3,h4,"
    $app s_all2codes, "j0,j1,j2,j3,j4,j5,j6,j7,j8,j9,"
    $app s_all2codes, " "

    s_line = sg_nothing
    d_byte = 1 
    d_loop = 1
    dwhi d_loop = 1
	  $cut s_2code, s_all2codes, d_byte, 2
	  $len d_long, s_2code

	  dift d_long = 2
	      s_pausefile = "PAUSE_" + s_2code + ".TXT"
		$tup s_pausefile, s_pausefile
		flen d_any, s_pausefile
		dift d_any >= 0: $app s_line, s_2code + ","
	  else
		dinc d_loop
	  endi

	  d_byte = d_byte + 3
    endw

    $len d_long, s_line
    dift d_long > 0
        $out "exists=" + s_line
    else
	  $out "none exist"
    endi
ends sub_pause_file_list


subr sub_write_teapro_lines_test_teaquad_5tp39
'updated 2010/05/20, 2010/04/29, 2010/04/25, 2010/04/23, 2010/04/22
'2010/04/19, 2010/04/07, 2010/04/02, 2010/02/17, 2010/02/16
    vari d_any, s_any, d_dot, s_dot, d_tap
    vari d_loop, d_count, d_totalct, d_begin, d_style
    vari s_filename, s_line, d_process, d_lines
    vari d_prime, s_prime, d_index, d_teaquadone

    'write teapro lines to test for set of low primes
    d_teaquadone = 10 ^ 15

    d_lines = 0
    d_process = 1
    dift d_process = 1
	  d_begin = 41
	  $inp s_any, "begin number default=41"
	  $ift s_any = "*": dinc d_process
	  $isd d_any, s_any
	  dift d_any = 1: $tod d_begin, s_any
    endi
    dift d_process = 1
	  d_totalct = 500
	  $inp s_any, "total count default=500"
	  $ift s_any = "*": dinc d_process
	  $isd d_any, s_any
	  dift d_any = 1: $tod d_totalct, s_any
	  dift d_totalct > 2000: d_totalct = 2000
    endi
    dift d_process = 1
	  d_style = 1
	  $inp s_any, "1=short style, 2=long"
	  $ift s_any = "*": dinc d_process
	  $ift s_any = "2": d_style = 2
    endi
    dift d_process = 1
	  'put primes in decimal array
	  arrz

	  'make sure d_begin is odd
	  d_any = d_begin % 2
	  dift d_any = 0: dinc d_begin

	  'get d_totalct of primes from d_begin into the decimal array
	  d_prime = d_begin
	  d_index = 1

	  dwhi d_index <= 2000
	      dfac d_tap, d_prime 	
            dift d_tap = 1
		    dtoi d_index, d_prime
		    dinc d_index
		endi
		d_prime = d_prime + 2
	  endw

	  'erase old file to begin new one
	  s_filename = "zteadift.txt"
	  fdel d_any, s_filename
    endi

'd_dot = d_teaquadone % d_prime
'd_mod1 = d_dot * d_teaquadmult + d_teaquad49part % d_prime
'dift d_mod1 < 39
'  dift d_mod1 < 20
'    dift d_mod1 < 7
'      dift d_mod1 = 0: goto tag_nextnumber
'      dift d_mod1 = 2: goto tag_nextnumber
'      dift d_mod1 = 6: goto tag_nextnumber
'    else
'      dift d_mod1 = 8: goto tag_nextnumber
'      dift d_mod1 = 18: goto tag_nextnumber
'    endi
'  else
'    dift d_mod1 < 32
'      dift d_mod1 = 20: goto tag_nextnumber
'      dift d_mod1 = 30: goto tag_nextnumber
'    else
'      dift d_mod1 = 32: goto tag_nextnumber
'      dift d_mod1 = 36: goto tag_nextnumber
'      dift d_mod1 = 38: goto tag_nextnumber
'    endi
'  endi
'endi

'prime=127 count=19.
'dg_modprime = 63 * d_teaquadmult + d_teaquad49part % 127
'dift dg_modprime < 39
'    sub_5tp39_test_with_prime
'    dift dg_resultprime > 0: goto tag_nextnumber
'endi

    d_loop = d_process
    d_index = 1
    dwhi d_loop = 1
	  'get the primes for d_index and for d_index+1
        itod d_prime, d_index
	  d_any = d_index + 1
	  itod d_tap, d_any

	  fapp d_any, s_filename, " "

	  d_dot = d_teaquadone % d_prime

	  s_line = "'prime=" + d_prime + " count=" + d_index
	  $app s_line, ". E15 % " + d_prime + " = " + d_dot
	  $app s_line, ", next prime=" + d_tap
	  fapp d_any, s_filename, s_line
	  $out s_line

	  dift d_style = 2
		d_dot = d_teaquadone % d_prime

		s_line = "d_mod1 = " + d_dot + " * d_teaquadmult"
		$app s_line, " + d_teaquad49part % " + d_prime
	      fapp d_any, s_filename, s_line

		s_line = "dift d_mod1 < 39"
	      fapp d_any, s_filename, s_line

		s_line = "  dift d_mod1 < 20" 
	      fapp d_any, s_filename, s_line

		s_line = "    dift d_mod1 < 7" 
	      fapp d_any, s_filename, s_line

		s_line = "      dift d_mod1 = 0: goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "      dift d_mod1 = 2: goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "      dift d_mod1 = 6: goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "    else"
	      fapp d_any, s_filename, s_line

		s_line = "      dift d_mod1 = 8: goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "      dift d_mod1 = 18: goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "    endi"
	      fapp d_any, s_filename, s_line

		s_line = "  else"
	      fapp d_any, s_filename, s_line

		s_line = "    dift d_mod1 < 32" 
	      fapp d_any, s_filename, s_line

		s_line = "      dift d_mod1 = 20: goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "      dift d_mod1 = 30: goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "    else"
	      fapp d_any, s_filename, s_line

		s_line = "      dift d_mod1 = 32: goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "      dift d_mod1 = 36: goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "      dift d_mod1 = 38: goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "    endi"
	      fapp d_any, s_filename, s_line

		s_line = "  endi"
	      fapp d_any, s_filename, s_line

		s_line = "endi"
	      fapp d_any, s_filename, s_line

		d_lines = d_lines + 23
        else
'prime=127 count=19.
'dg_modprime = 63 * d_teaquadmult + d_teaquad49part % 127
'dift dg_modprime < 39
'    sub_5tp39_test_with_prime
'    dift dg_resultprime > 0: goto tag_nextnumber
'endi

		d_dot = d_teaquadone % d_prime

		s_line = "dg_modprime = " + d_dot
		$app s_line, " * d_teaquadmult"
		$app s_line, " + d_teaquad49part % " + d_prime
	      fapp d_any, s_filename, s_line

		s_line = "dift dg_modprime < 39"
	      fapp d_any, s_filename, s_line

		s_line = "  sub_5tp39_test_with_prime"
	      fapp d_any, s_filename, s_line

		s_line = "  dift dg_resultprime > 0:"
		$app s_line, " goto tag_nextnumber"
	      fapp d_any, s_filename, s_line

		s_line = "endi"
	      fapp d_any, s_filename, s_line

		d_lines = d_lines + 7
	  endi

	  dinc d_index
	  dift d_index > d_totalct: dinc d_loop
    endw

    $inp s_any, "return, lines=" + d_lines
ends sub_write_teapro_lines_test_teaquad_5tp39


subr sub_test_dift_loop_5tp39
'updated 2010/05/31, 2010/04/25, 2010/02/19
    vari d_any, s_any, d_dot, s_dot
    vari d_count, d_totcount, d_seconds, d_mod1, d_mod2
    vari d_linescount

    d_totcount = 10 ^ 8
    ded$ s_any, d_totcount, 0, 0
    $inp s_dot, "enter count wanted, default=" + s_any
    $isd d_any, s_dot
    dift d_any = 1: $tod d_totcount, s_dot

    dsys d_any, 2
    ded$ s_any, d_any, 0, 0
    $out "running " + sg_build + " " + s_any

    dsec d_seconds
    d_count = 0
    dsys d_linescount, 2

    gtag tag_testdiftloop

    dinc d_count
    dift d_count > d_totcount: goto tag_endtestdiftloop

    d_mod1 = d_count % 39

  dift d_mod1 < 20
    dift d_mod1 < 7
      dift d_mod1 = 0: goto tag_testdiftloop
      dift d_mod1 = 2: goto tag_testdiftloop
      dift d_mod1 = 6: goto tag_testdiftloop
    else
      dift d_mod1 = 8: goto tag_testdiftloop
      dift d_mod1 = 18: goto tag_testdiftloop
    endi
  else
    dift d_mod1 < 32
      dift d_mod1 = 20: goto tag_testdiftloop
      dift d_mod1 = 30: goto tag_testdiftloop
    else
      dift d_mod1 = 32: goto tag_testdiftloop
      dift d_mod1 = 36: goto tag_testdiftloop
      dift d_mod1 = 38: goto tag_testdiftloop
    endi
  endi
  goto tag_testdiftloop

  dift d_mod1 < 20
      dift d_mod1 = 0: goto tag_testdiftloop
      dift d_mod1 = 2: goto tag_testdiftloop
      dift d_mod1 = 6: goto tag_testdiftloop
      dift d_mod1 = 8: goto tag_testdiftloop
      dift d_mod1 = 18: goto tag_testdiftloop
  else
      dift d_mod1 = 20: goto tag_testdiftloop
      dift d_mod1 = 30: goto tag_testdiftloop
      dift d_mod1 = 32: goto tag_testdiftloop
      dift d_mod1 = 36: goto tag_testdiftloop
      dift d_mod1 = 38: goto tag_testdiftloop
  endi
  goto tag_testdiftloop

    gtag tag_endtestdiftloop

    dsec d_any
    d_seconds = d_any - d_seconds

    dsys d_any, 2
    d_linescount = d_any - d_linescount
    ded$ s_any, d_linescount, 0, 0
    $out "lines=" + s_any

    ded$ s_dot, d_totcount, 0, 0
    $inp s_any, "sec=" + d_seconds + " tot=" + s_dot

'3 dift,else 67.265 sec/E8 938,461,550 lines 2010/04/25
'1 dift,else 72.703 sec/E8 1,023,076,932 lines 2010/04/25
ends sub_test_dift_loop_5tp39


subr sub_input_yes_or_asterisk
'updated 2010/08/21, 2010/03/23, 2010/03/22, 2009/12/16
    vari d_any, s_any, s_dot
    vari d_loop, d_count

    d_count = 1
    d_loop = 1
    dwhi d_loop = 1
	  $dat s_dot
	  $cut s_dot, s_dot, 1, 17
	  s_any = "enter y=yes or asterisk to endp, " + s_dot
	  $inp s_any, s_any 

	  $tlo s_any, s_any
	  $app s_any, " "
	  $cut s_any, s_any, 1, 1

	  $ift s_any = "*": endp
	  $ift s_any = "y": dinc d_loop	

	  dinc d_count
	  dift d_count > 100: dinc d_loop
    endw
ends sub_input_yes_or_asterisk


subr sub_5tp39_two_files_compare
'updated 2008/12/22, 2008/12/09, 2007/12/13
'2007/12/10, 2007/10/27, 2007/10/23, 2007/10/04, 2007/08/26
'2007/07/31, 2006/07/28, 2006/02/25, 2005/10/15, 2004/05/11
    vari d_any, s_any, d_dot, s_dot, s_out
    vari s_filename1, s_filedata1, s_filename2, s_filedata2
    vari d_process, d_loop, d_big, d_ctlines, d_ctskipped
    vari d_ctfound, d_ctnotfound, s_prev5tp39, s_dashline
    vari s_5tp39, s_lookstring, d_matchupfile, d_nostop
    vari d_ctdata1, d_ctdata2, d_cte15

    $ch$ s_dashline, "-", 50
    d_process = 1
    dift d_process = 1
        $out "5tp39s in file1 are looked up in file2"
        $inp s_filename1, "enter filename1"
	  $ift s_filename1 = "*": dinc d_process
    endi
    dift d_process = 1
        $inp s_filename2, "enter filename2"
	  $ift s_filename2 = "*": dinc d_process
    endi
    dift d_process = 1
        finp s_filedata1, s_filename1
        finp s_filedata2, s_filename2

        $bes s_filedata1, s_filedata1
        $bes s_filedata2, s_filedata2

        $cup s_filedata1, s_filedata1
        $cup s_filedata2, s_filedata2

        s_lookstring = "5TP39="
        $cnt d_ctdata1, s_filedata1, s_lookstring
        $cnt d_ctdata2, s_filedata2, s_lookstring

        $len d_any, s_filedata1
        s_out = s_filename1 + ", length=" + d_any
        $app s_out, ", count=" + d_ctdata1
        $out s_out
        dift d_any = 0: dinc d_process
    endi
    dift d_process = 1
        $len d_any, s_filedata2
        s_out = s_filename2 + ", length=" + d_any
        $app s_out, ", count=" + d_ctdata2
        $out s_out
        dift d_any = 0: dinc d_process
    endi
    dift d_process = 1
	  $inp s_any, "1=make new no find file=matchup.txt"
	  $ift s_any = "*": dinc d_process
	  d_matchupfile = 2
	  $ift s_any = "1"
		d_matchupfile = 1
		fdel d_any, "matchup.txt"
	  endi
    endi
    dift d_process = 1
	  $inp s_any, "1=no stop"
	  $ift s_any = "*": dinc d_process
	  d_nostop = 2
	  $ift s_any = "1": d_nostop = 1	 
    endi
    dift d_process = 1
        $out "from " + s_filename1 + " looking in " + s_filename2
	  $inp s_any, "return to begin"
	  $ift s_any = "*": dinc d_process
    endi

    d_cte15 = 0
    d_ctskipped = 0
    d_ctdata1 = 0
    d_ctfound = 0
    d_ctnotfound = 0
    d_ctlines = 0
    dpow d_big, 10, 10

    d_loop = d_process

    dwhi d_loop = 1
        's_lookstring is "5TP39="
	  $lok d_dot, s_filedata1, 1, s_lookstring	  

	  dift d_dot = 0
		'no more are in s_filedata1
	      dinc d_loop
	  else
		'we found a s_lookstring in s_filedata1

		'tell
		dinc d_ctdata1
		d_any = d_ctdata1 % 100
		dift d_any = 0: $sho d_ctdata1

		'5TP39=^ 
		'0123456
		d_dot = d_dot + 6
		$cut s_filedata1, s_filedata1, d_dot, d_big
		$trb s_filedata1, s_filedata1

		$lok d_dot, s_filedata1, 1, " "
		$cut s_5tp39, s_filedata1, 1, d_dot
		$trb s_5tp39, s_5tp39

		' 12345678901234567890
		'1,234,567,890,123,456
		$len d_any, s_5tp39
		dift d_any > 20
		    'output dash line between quadrillions
		    d_any = d_any - 20
		    $cut s_any, s_5tp39, 1, d_any
		    $cut s_dot, s_prev5tp39, 1, d_any
		    $ift s_any <> s_dot
			  s_out = d_cte15 + " " + s_dot
			  $app s_out, "E15" + s_dashline
			  $out s_out

		        dift d_matchupfile = 1
			      fapp d_any, "matchup.txt", s_out
			      dbad d_any = 0
		        endi

			  d_cte15 = 0
		    endi
		endi

		'increment count per e15
		dinc d_cte15

		s_prev5tp39 = s_5tp39

		s_5tp39 = "5TP39= " + s_5tp39 + " "

		'is it in s_filedata2
		$lok d_dot, s_filedata2, 1, s_5tp39

		dift d_dot > 0
		    'in both
		    dinc d_ctfound

		    dift d_ctskipped > 0
			  dift d_ctskipped < 20
				s_any = " count of skipped=" + d_ctskipped
			      $out s_5tp39 + s_any 
				$inp s_any, "return"
			      $ift s_any = "*": dinc d_loop
			  endi
		    endi
		    d_ctskipped = 0
		else
		    'not found in s_filedata2
		    dinc d_ctskipped
		    dinc d_ctnotfound

		    s_out = d_ctnotfound
	          $app s_out, ". " + s_5tp39
	          '$app s_out, " in " + s_filename1
	          '$app s_out, " but not in " + s_filename2
	          $out s_out

		    dift d_matchupfile = 1
			  fapp d_any, "matchup.txt", s_out
			  dbad d_any = 0
		    endi

		    'stop every 20 lines unless d_nostop=1
		    dift d_nostop = 1: d_ctlines = 0
	          dinc d_ctlines
	          dift d_ctlines >= 20
	              d_ctlines = 0
	              $inp s_any, "more"
			  $ift s_any = "*": dinc d_loop
	          endi
		endi
	  endi
    endw

    $out "found=" + d_ctfound + ", not=" + d_ctnotfound

    sub_path_prog_memory

    $inp s_any, "done"    
ends sub_5tp39_two_files_compare


subr sub_5tp39_validate_in_a_file
'updated 2006/11/24, 2006/08/04, 2006/07/19
'2006/03/08, 2006/03/07, 2006/03/06, 2006/02/25, 2005/06/09
'2005/05/19, 2005/05/02, 2005/05/01, 2005/04/29, 2005/04/20
'2005/04/19, 2005/04/08, 2005/03/31, 2005/03/07, 2005/03/06
    vari d_any, s_any, d_dot, s_dot, s_tap, s_out
    vari d_filebyte, s_record, s_filename, d_loop, d_good
    vari s_number, d_number, d_seconds, d_begin, d_count
    vari d_yestest, d_process, d_findclosetwin, d_true
    vari d_3cluster, d_1hold, d_2hold, d_diff
    vari d_largegap, d_smallgap
    vari d_ypivcom, d_pivcom, s_factors

    'get current subroutine name
    $sys s_any, 2
    $out s_any

    d_process = 1
    dift d_process = 1
        $inp s_any, "1=do not test for 5TP39, default=do test"
        $ift s_any = "*": dinc d_process
        d_yestest = 1
        $ift s_any = "1": dinc d_yestest
    endi
    dift d_process = 1
        $inp s_any, "enter number to begin, default = 6.4*10^15"
        $ift s_any = "*": dinc d_process
        $tod d_begin, "6,400,000,000,000,000"
        $isd d_any, s_any
        dift d_any = 1: $tod d_begin, s_any
    endi
    dift d_process = 1
	  d_ypivcom = 2
	  $inp s_any, "1=pivcom factors"
	  $ift s_any = "*": dinc d_process
	  $ift s_any = "1": d_ypivcom = 1
    endi
    dift d_process = 1
        $inp s_any, "enter amount for a 3cluster, default=0"
        $ift s_any = "*": dinc d_process
        d_3cluster = 0
        $isd d_any, s_any
        dift d_any = 1: $tod d_3cluster, s_any
    endi
    dift d_process = 1
        d_largegap = 0
        $inp s_any, "1 = large gap of 15*10^12 or enter other"
        $ift s_any = "*": dinc d_process
        $ift s_any = "1": s_any = "15,000,000,000,000"
        $isd d_any, s_any
        dift d_any = 1: $tod d_largegap, s_any
    endi
    dift d_process = 1
        d_smallgap = 0
        $inp s_any, "1 = small gap of 5*10^9 or enter other"
        $ift s_any = "*": dinc d_process
        $ift s_any = "1": s_any = "5,000,000,000"
        $isd d_any, s_any
        dift d_any = 1: $tod d_smallgap, s_any

        $out "3cluster=" + d_3cluster
        s_filename = "fix5tp39.exp"
        $out "input file=" + s_filename
    endi
    dift d_process = 1
	  d_findclosetwin = 0
	  $inp s_any, "1 = find close twin"
	  $ift s_any = "*": dinc d_process
	  $ift s_any = "1": d_findclosetwin = 1
    endi

    d_count = 0
    d_filebyte = 1
    d_loop = d_process
    dwhi d_loop = 1
	  d_good = 1
	  fsip s_record, s_filename, d_filebyte
	  dift d_filebyte = 0
		dinc d_good
		dinc d_loop
	  endi
	  dift d_good = 1
		$lok d_dot, s_record, 1, "5TP39="
		dift d_dot = 0: dinc d_good
	  endi
	  dift d_good = 1
		'5TP39= 39,713...
		d_dot = d_dot + 7
		$lok d_any, s_record, d_dot, " "
		d_any = d_any - d_dot + 1
		$cut s_number, s_record, d_dot, d_any
		$trb s_number, s_number
		$isd d_any, s_number
		dift d_any <> 1
		    $inp s_any, "bad number=" + s_number
		    $ift s_any = "*": dinc d_loop
		    dinc d_good
		endi
	  endi
	  dift d_good = 1
		$tod d_number, s_number

		'skip if before beginning
		dift d_number < d_begin: dinc d_good
	  endi
	  dift d_good = 1
		dift d_yestest = 1
		    dg_pass1 = d_number
		    sub_5tp39_test
		    d_true = dg_pass2
		    d_seconds = dg_pass3
		else
		    d_true = 1
		    d_seconds = 0
		endi
dift d_findclosetwin = 1
    dift d_true = 1		
        'find close twin
        dg_pass1 = d_number + 38
        dg_pass2 = 2
        sub_find_close_twin
        dg_pass1 = d_number
        dg_pass2 = -2
        sub_find_close_twin
    endi
endi
		dift d_true <> 1
		    'do not have 5TP39
		    $inp s_any, "not 5TP39= " + s_number
		    $ift s_any = "*": dinc d_loop
		else
		    'have 5TP39
		    dinc d_count

		    s_factors = sg_nothing
		    dift d_ypivcom = 1
			  d_dot = d_number + 19 \ 210
			  dfac d_any, d_dot
			  $app s_factors, ",pfac=" + d_any
		    endi

		    s_out = d_count + ". 5TP39= " + s_number
		    $app s_out, " secs= " + d_seconds
		    $app s_out, " " + s_factors
		    $out s_out

		    'small gap
		    dift d_smallgap > 0
			  d_diff = d_number - d_1hold
			  dift d_diff < d_smallgap
				ded$ s_any, d_number,0 ,0
				ded$ s_dot, d_1hold, 0, 0			 
				ded$ s_tap, d_diff, 0, 0
				s_out = "small gap: " + s_any
				$app s_out, ", " + s_dot
				$app s_out, " of " + s_tap
				$inp s_any, s_out
			  endi
		    endi

		    'large gap
		    dift d_largegap > 0
			  d_diff = d_number - d_1hold
			  dift d_diff > d_largegap
				ded$ s_any, d_1hold, 0, 0			 
				$out "large gap: " + s_any

				ded$ s_any, d_number,0 ,0
				$out "large gap: " + s_any

				ded$ s_any, d_diff, 0, 0
				$out "diff: " + s_any

				$inp s_any, "more"
				$ift s_any = "*": dinc d_loop
			  endi
		    endi

		    '3cluster
		    dift d_3cluster > 0
			  d_diff = d_number - d_2hold
			  dift d_diff < d_3cluster
				ded$ s_any, d_2hold, 0, 0
				$out "3cluster=" + s_any

				ded$ s_any, d_1hold, 0, 0
				$out "3cluster=" + s_any

				ded$ s_any, d_number, 0, 0
				$out "3cluster=" + s_any

				ded$ s_any, d_diff, 0, 0
				$out "difference=" + s_any

				$inp s_any, "3cluster, * to end"
				$ift s_any = "*": dinc d_loop
			  endi
		    endi

		    d_2hold = d_1hold
		    d_1hold = d_number
		endi
	  endi
    endw

    $inp s_any, "count=" + d_count
ends sub_5tp39_validate_in_a_file


subr sub_5tp39_rolling_test_primes
'updated 2007/07/08, 2007/07/07, 2007/07/06
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_process, d_yes, s_bads, s_goods
    vari d_num, d_mod, d_test, d_count1, d_count2
    vari d_p11, d_p13, d_p17, d_p19, d_p29
    vari d_p31, d_p41, d_p43, d_p47, d_p49

    '71,525,244,611 is the third 5tp39
    d_p11 = 71525244611
    d_p13 = d_p11 + 2
    d_p17 = d_p11 + 6
    d_p19 = d_p11 + 8
    d_p29 = d_p11 + 18
    d_p31 = d_p11 + 20
    d_p41 = d_p11 + 30
    d_p43 = d_p11 + 32
    d_p47 = d_p11 + 36
    d_p49 = d_p11 + 38

    d_process = 1
    dift d_process = 1
        $inp s_any, "enter test number ie. 17, 19"
	  $ift s_any = "*": dinc d_process
	  $isd d_any, s_any
	  dift d_any = 1: $tod d_num, s_any
    endi
    s_bads = sg_nothing
    s_goods = sg_nothing

    dift d_process = 1
	  d_mod = 0
	  dwhi d_mod < d_num
		d_test = d_p49 - d_mod
		d_yes = 1
		dift d_mod = 0: dinc d_yes
		dift d_test = d_p11: dinc d_yes
		dift d_test = d_p13: dinc d_yes
		dift d_test = d_p17: dinc d_yes
		dift d_test = d_p19: dinc d_yes
		dift d_test = d_p29: dinc d_yes
		dift d_test = d_p31: dinc d_yes
		dift d_test = d_p41: dinc d_yes
		dift d_test = d_p43: dinc d_yes
		dift d_test = d_p47: dinc d_yes
		dift d_test = d_p49: dinc d_yes

		d_test = d_test - d_num
		dift d_test = d_p11: dinc d_yes
		dift d_test = d_p13: dinc d_yes
		dift d_test = d_p17: dinc d_yes
		dift d_test = d_p19: dinc d_yes
		dift d_test = d_p29: dinc d_yes
		dift d_test = d_p31: dinc d_yes
		dift d_test = d_p41: dinc d_yes
		dift d_test = d_p43: dinc d_yes
		dift d_test = d_p47: dinc d_yes
		dift d_test = d_p49: dinc d_yes

		d_test = d_test - d_num
		dift d_test = d_p11: dinc d_yes
		dift d_test = d_p13: dinc d_yes
		dift d_test = d_p17: dinc d_yes
		dift d_test = d_p19: dinc d_yes
		dift d_test = d_p29: dinc d_yes
		dift d_test = d_p31: dinc d_yes
		dift d_test = d_p41: dinc d_yes
		dift d_test = d_p43: dinc d_yes
		dift d_test = d_p47: dinc d_yes
		dift d_test = d_p49: dinc d_yes

		d_test = d_test - d_num
		dift d_test = d_p11: dinc d_yes
		dift d_test = d_p13: dinc d_yes
		dift d_test = d_p17: dinc d_yes
		dift d_test = d_p19: dinc d_yes
		dift d_test = d_p29: dinc d_yes
		dift d_test = d_p31: dinc d_yes
		dift d_test = d_p41: dinc d_yes
		dift d_test = d_p43: dinc d_yes
		dift d_test = d_p47: dinc d_yes
		dift d_test = d_p49: dinc d_yes

		dift d_yes = 1: $app s_goods, d_mod + " "
		dift d_yes <> 1: $app s_bads, d_mod + " "

		s_out = "number=" + d_num + " mod=" + d_mod + " result="
		dift d_yes = 1: $app s_out, " yes"
		dift d_yes <> 1: $app s_out, " no"
		$out s_out

		dift d_yes = 1: dinc d_count1
		dift d_yes <> 1: dinc d_count2
		dinc d_mod
		'dg_pass1 = d_mod
		'sub_next_prime
		'd_mod = dg_pass1
	  endw
    endi

    $out "bad mods=" + s_bads
    $out "good mods=" + s_goods

    dpow d_any, 10, 15
    d_any = d_any % d_num
    $out "10^15%" + d_num + "=" + d_any

    $inp s_any, "done, yes=" + d_count1 + " no=" + d_count2
ends sub_5tp39_rolling_test_primes


subr sub_next_prime
'updated 2007/07/06
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_number, d_loop

    d_number = dg_pass1 + 1

    d_any = d_number % 2
    dift d_any = 0: dinc d_number

    d_loop = 1
    dwhi d_loop = 1
	  dfac d_any, d_number
	  dift d_any = 1
		dinc d_loop
	  else
		d_number = d_number + 2
	  endi
    endw

    dg_pass1 = d_number
ends sub_next_prime


subr sub_find_close_twin
'updated 2006/04/05, 2006/03/08, 2006/03/07
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_number0, d_number1, d_number2, d_factor
    vari s_number0, d_loop, d_delta, d_2delta

    d_number0 = dg_pass1

    d_delta = dg_pass2
    dift d_delta <> -2: d_delta = 2
    d_2delta = 2 * d_delta

    d_number1 = d_number0 + d_delta

    d_loop = 1
    dwhi d_loop = 1
	  'find the first twin from a number
	  dfac d_factor, d_number1

	  dift d_factor = 1
		d_number2 = d_number1 + d_delta

		dfac d_factor, d_number2
		dift d_factor = 1
		    'we have a prime twin
		    ded$ s_number0, d_number0, 0, 0
		    ded$ s_any, d_number1, 0, 0
		    d_any = d_number1 - d_number0
		    s_out = "5TP39=" + s_number0 + ", twin="
		    $app s_out, s_any + ", diff=" + d_any
		    $out s_out

		    fapp d_any, "twins.txt", s_out
		    dbad d_any = 0

		    dinc d_loop
		else
		    d_number1 = d_number1 + d_2delta
		endi
	  else
		dift d_factor = 2: dinc d_loop
		d_number1 = d_number1 + d_delta		
	  endi

	  'no use going too far
	  d_any = d_number1 - d_number0
	  dabs d_any, d_any
	  dift d_any > 23: dinc d_loop
    endw
ends sub_find_close_twin


subr sub_5tp39_factors
'updated 2005/05/02
'factors of dg_pass1 into sg_pass1
    vari d_any, s_any, d_dot, s_dot
    vari d_number, d_factor, s_result
    vari d_good, d_loop

    d_number = dg_pass1 / 210
    s_result = sg_nothing

    d_loop = 1
    dwhi d_loop = 1
	  dfac d_factor, d_number
	  $app s_result, "," + d_factor

	  dift d_factor > 1
		d_number = d_number / d_factor
	  else
		dinc d_loop
	  endi
    endw
    sg_pass1 = s_result
ends sub_5tp39_pivcom_factors


subr sub_5tp39_test
'updated 2005/03/06
    vari d_any, s_any, d_dot, s_dot
    vari d_number, d_good, d_seconds

    dsec d_seconds

    '11,13,17,19,29,31,41,43,47,49
    d_number = dg_pass1
    dfac d_good, d_number

    d_any = d_number + 2
    dift d_good = 1: dfac d_good, d_any

    d_any = d_number + 6
    dift d_good = 1: dfac d_good, d_any

    d_any = d_number + 8
    dift d_good = 1: dfac d_good, d_any

    d_any = d_number + 18
    dift d_good = 1: dfac d_good, d_any

    d_any = d_number + 20
    dift d_good = 1: dfac d_good, d_any

    d_any = d_number + 30
    dift d_good = 1: dfac d_good, d_any

    d_any = d_number + 32
    dift d_good = 1: dfac d_good, d_any

    d_any = d_number + 36
    dift d_good = 1: dfac d_good, d_any

    d_any = d_number + 38
    dift d_good = 1: dfac d_good, d_any

    dsec d_any

    dg_pass2 = d_good		
    dg_pass3 = d_any - d_seconds
ends sub_5tp39_test


subr sub_teaquad_5tp39_test_a_number_duo
'updated 2008/12/06, 2007/12/01, 2007/09/06
'2007/02/25, 2006/07/29, 2005/07/23, 2005/05/01, 2005/04/17
'2005/04/14, 2005/03/31, 2005/03/27, 2005/03/18, 2005/03/16
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_process, d_loop, d_factor, s_dashline, d_yes, d_count
    vari s_number, d_number, d_trynum, s_trynum
    vari d_seconds1, d_seconds2, d_seconds3
    vari d_teaquadpart, d_teaquadmult
    vari d_tryteaquadpart, d_tryteaquadmult

    'get current subroutine name
    $sys s_any, 2
    $out s_any

    $ch$ s_dashline, "-", 70
    d_process = 1
    
    d_loop = d_process
    dwhi d_loop = 1
	  $out s_dashline
	  $out "1. 5TP39= 39,713,433,671"
	  $out "2. 5TP39= 1,943,372,747,435,261"
	  $out "3. 5TP39= 1,943,381,207,047,331"
	  $out "25. 5TP39= 13,069,672,451,845,151"
	  $out "99. 5TP39= 99,996,530,453,619,851"
	  $inp s_number, "enter the first number of a 5TP39"
	  $ift s_number = "*"
		dinc d_loop
		dinc d_process
	  endi
	  $ift s_number = "1": s_number = "39,713,433,671"
	  $ift s_number = "2": s_number = "1,943,372,747,435,261"
	  $ift s_number = "3": s_number = "1,943,381,207,047,331"
	  $ift s_number = "25": s_number = "13,069,672,451,845,151"
	  $ift s_number = "99": s_number = "99,996,530,453,619,851"

        dift d_process = 1
	      $out s_number 
	      sg_pass1 = s_number
	      sub_teaquad_from_string
	      d_teaquadpart = dg_pass1
	      d_teaquadmult = dg_pass2

		ded$ s_any, d_teaquadpart, 0, 0
	      $out "d_teaquadpart=" + s_any

		ded$ s_any, d_teaquadmult, 0, 0
	      $out "d_teaquadmult=" + s_any
        endi

	  dift d_process = 1
		d_count = 0
		d_yes = 1

		dsec d_seconds1

		'11,13
		dinc d_count
		d_tryteaquadpart = d_teaquadpart
		d_tryteaquadmult = d_teaquadmult
		dg_pass1 = d_tryteaquadpart
		dg_pass2 = d_tryteaquadmult
		sub_teaquad_to_string
		s_trynum = d_count + "=" + " " + sg_pass1

		dsec d_seconds2
		dduo d_factor, d_tryteaquadpart, d_tryteaquadmult
		dsec d_seconds3

	      dift d_factor = 1
		    s_out = s_trynum + " is prime"	
	      else
		    ded$ s_any, d_factor, 0, 0
		    s_out = s_trynum + " is not prime, " + s_any	
		    dinc d_yes
	      endi
		d_seconds3 = d_seconds3 - d_seconds2
		$out s_out + " sec=" + d_seconds3

		'17,19
		dinc d_count
		d_tryteaquadpart = d_teaquadpart + 6
		d_tryteaquadmult = d_teaquadmult
		dg_pass1 = d_tryteaquadpart
		dg_pass2 = d_tryteaquadmult
		sub_teaquad_to_string
		s_trynum = d_count + "=" + " " + sg_pass1

		dsec d_seconds2
		dduo d_factor, d_tryteaquadpart, d_tryteaquadmult
		dsec d_seconds3
	      dift d_factor = 1
		    s_out = s_trynum + " is prime"	
	      else
		    ded$ s_any, d_factor, 0, 0
		    s_out = s_trynum + " is not prime, " + s_any	
		    dinc d_yes
	      endi
		d_seconds3 = d_seconds3 - d_seconds2
		$out s_out + " sec=" + d_seconds3

		'29,31
		dinc d_count
		d_tryteaquadpart = d_teaquadpart + 18
		d_tryteaquadmult = d_teaquadmult
		dg_pass1 = d_tryteaquadpart
		dg_pass2 = d_tryteaquadmult
		sub_teaquad_to_string
		s_trynum = d_count + "=" + " " + sg_pass1

		dsec d_seconds2
		dduo d_factor, d_tryteaquadpart, d_tryteaquadmult
		dsec d_seconds3
	      dift d_factor = 1
		    s_out = s_trynum + " is prime"	
	      else
		    ded$ s_any, d_factor, 0, 0
		    s_out = s_trynum + " is not prime, " + s_any	
		    dinc d_yes
	      endi
		d_seconds3 = d_seconds3 - d_seconds2
		$out s_out + " sec=" + d_seconds3

		'41,43
		dinc d_count
		d_tryteaquadpart = d_teaquadpart + 30
		d_tryteaquadmult = d_teaquadmult
		dg_pass1 = d_tryteaquadpart
		dg_pass2 = d_tryteaquadmult
		sub_teaquad_to_string
		s_trynum = d_count + "=" + " " + sg_pass1

		dsec d_seconds2
		dduo d_factor, d_tryteaquadpart, d_tryteaquadmult
		dsec d_seconds3
	      dift d_factor = 1
		    s_out = s_trynum + " is prime"	
	      else
		    ded$ s_any, d_factor, 0, 0
		    s_out = s_trynum + " is not prime, " + s_any	
		    dinc d_yes
	      endi
		d_seconds3 = d_seconds3 - d_seconds2
		$out s_out + " sec=" + d_seconds3

		'47,49
		dinc d_count
		d_tryteaquadpart = d_teaquadpart + 36
		d_tryteaquadmult = d_teaquadmult
		dg_pass1 = d_tryteaquadpart
		dg_pass2 = d_tryteaquadmult
		sub_teaquad_to_string
		s_trynum = d_count + "=" + " " + sg_pass1

		dsec d_seconds2
		dduo d_factor, d_tryteaquadpart, d_tryteaquadmult
		dsec d_seconds3
	      dift d_factor = 1
		    s_out = s_trynum + " is prime"	
	      else
		    ded$ s_any, d_factor, 0, 0
		    s_out = s_trynum + " is not prime, " + s_any	
		    dinc d_yes
	      endi
		d_seconds3 = d_seconds3 - d_seconds2
		$out s_out + " sec=" + d_seconds3

		dsec d_any
		d_seconds1 = d_any - d_seconds1
		$out s_dashline

		dift d_yes = 1
		    s_any = "yes, 5TP39, number=" + s_number 		   
		    $app s_any, ", seconds=" + d_seconds1
		    $out s_any
		else
		    s_any = "not 5TP39, number=" + s_number
		    $app s_any, ", seconds=" + d_seconds1
		    $out s_any
		endi
		$inp s_any, "return"
		$ift s_any = "*": dinc d_loop
	  endi
    endw
ends sub_teaquad_5tp39_test_a_number_duo


subr sub_floating_point_accuracy
'updated 2005/03/31, 2005/03/29
    vari d_any, s_any, d_dot, s_dot
    vari d_loop, d_number, s_number, s_hold
    vari d_high, d_delta, d_random, d_totrandom
    vari d_count, d_jump

    'get current subroutine name
    $sys s_any, 2
    $out s_any

    d_totrandom = 0
    d_count = 0
    dpow d_jump, 10, 5
    dpow d_high, 10, 16
    dpow d_delta, 10, 13

    d_loop = 1
    dwhi d_loop = 1
	  dran d_random
	  d_totrandom = d_totrandom + d_random

	  d_number = d_high - d_delta * d_random + d_high - d_delta
	  ddec d_delta

	  d_any = d_number + 1
	  dift d_any = d_number
		dift d_number < d_high: d_high = d_number
	  endi

	  dinc d_count
	  d_any = d_count % d_jump

        dift d_any = 0
		d_any = d_totrandom / d_count

		ded$ s_any, d_count, 0, 0
		ded$ s_dot, d_high, 0, 0

		s_any = s_any + ". " + s_dot
		$app s_any, ", averan=" + d_any
		$app s_any, ", random=" + d_random
		$out s_any
	  endi
    endw
ends sub_floating_point_accuracy


subr sub_speed
'updated 2005/03/31, 2005/02/26, 2004/12/03
'speed test
    vari d_any, s_any, d_dot, s_dot
    vari d_time, d_max, d_count

    'get current subroutine name
    $sys s_any, 2
    $out s_any

    dsec d_time

    'ten million loop
    d_max = 1000 * 1000 * 10
    d_count = 0
    dwhi d_count < d_max
	  dinc d_count
    endw
    dsec d_any
    d_time = d_any - d_time
    ded$ s_any, d_count, 0, 0
    $out "loops=" + s_any
    $inp s_any, "ten million loop, seconds=" + d_time 
ends sub_speed


subr sub_floating_point_test
'updated 2009/03/04, 2006/07/19, 2002/10/05
    vari d_any, s_any, d_dot, s_dot
    vari s_out
   
    dpow d_any, 10, 14
    d_any = d_any / 3
    ded$ s_out, d_any, 0, 0

    s_out = "10E14/3=" + s_out

    s_any = "error: floating point: "
    $lok d_dot, s_out, 1, "."

    dift d_dot > 0
	  ddec d_dot
	  $cut s_dot, s_out, d_dot, 3
	  $ift s_dot = "3.3": s_any = "ok: floating point: "
    endi
    dsec d_any
    $out s_any + s_out + " sec=" + d_any
ends sub_floating_point_test


subr sub_prime_test_using_prime_array
'updated 2006/07/29, 2004/01/24
'test dg_pass1>3 for prime, if prime set dg_pass1 to 1
'use the indexed primes in the decimal array
    vari d_number, d_try, d_square, d_mod, d_index
    vari d_loop, d_result, d_root

    d_number = dg_pass1 \ 1
    dabs d_number, d_number
    dpow d_root, d_number, 0.5
    d_index = 1
    d_result = 1
    d_try = 3
    d_loop = 1

    dwhi d_loop = 1
	  dift d_index <= 2000
		itod d_try, d_index
		dinc d_index
	  else
		d_try = d_try + 2
	  endi

	  dift d_try > d_root
		dinc d_loop
	  else
		d_mod = d_number % d_try
		dift d_mod = 0
		    d_result = d_try
		    dinc d_loop	  
		endi
	  endi
    endw
    dg_pass1 = d_result
ends sub_prime_test_using_prime_array


subr sub_primes_build_array
'updated 2004/01/24
'put 2000 primes into the array by index
    vari s_any, d_any
    vari d_number, d_result, d_index, d_prime
    vari d_time1, d_time2

    dsec d_time1

    $out "building array of 2000 primes starting at 3 in 1"
    d_number = 3
    d_index = 1

    dwhi d_index <= 2000

	  'test d_prime to see if it is prime
	  dg_pass1 = d_number
	  sub_prime_test_simple
	  d_result = dg_pass1

	  dift d_result = 1
		d_prime = d_number
		dtoi d_index, d_number
		dinc d_index	 
	  endi

	  d_number = d_number + 2
    endw

    $out "array built of 2000 primes from 3 to " + d_prime

    dsec d_time2
    d_time2 = d_time2 - d_time1
    $out "seconds = " + d_time2
ends sub_primes_build_array


subr sub_prime_test_one_number
'updated 2006/08/04, 2006/07/29, 2004/01/01
'test individual numbers for primeness
    vari s_any, d_any, s_dot, d_dot, s_out
    vari s_pick, d_pick, s_num1, s_num2
    vari d_number, d_loop, d_good, s_xyzedited
    vari d_sec1, d_sec2, s_dashline, d_type
    vari d_tealines

    $out "1=use teapro command dfac"
    $out "2=use prime array"
    $out "3=use simple prime test"
    $inp s_any, "pick"

    d_type = 1
    $isd d_any, s_any
    dift d_any = 1: $tod d_type, s_any

    dift d_type = 2: sub_primes_build_array

    $ch$ s_dashline, "-", 70

    d_loop = 1
    dwhi d_loop = 1
	  ded$ s_any, dg_xvalue, 0, 0
	  s_xyzedited = "x=" + s_any
	  ded$ s_any, dg_yvalue, 0, 0
	  $app s_xyzedited, ", y=" + s_any
	  ded$ s_any, dg_zvalue, 0, 0
	  $app s_xyzedited, ", z=" + s_any

        $out s_dashline
	  $out " 1.           1,000,000,007"
	  $out " 2.       1,000,000,000,039"
	  $out " 3.       1,346,294,310,749"
	  $out " 4.       7,177,162,611,713"
	  $out " 5.      13,829,048,559,701"
	  $out " 6.      90,874,329,411,493"
	  $out " 7.     100,000,380,000,361 by 10,000,019"
	  $out " 8.     570,800,107,412,201"
	  $out " 9.     999,999,999,999,947"
	  $out "10.     999,999,999,999,989"
	  $out "11.   2,000,274,172,370,231"
	  $out "12.   2,276,000,138,167,961"
	  $out "13.   3,000,058,045,624,691"
	  $out "14.   6,000,993,394,600,871"
        $out "15.   9,002,235,408,655,631"
	  $out "16.   9,007,196,099,250,001 by 94,906,249"
	  $out s_xyzedited
	  $out "enter a number above or any number"
	  $inp s_pick, "enter a number to test for primeness, * to end"
	  $ift s_pick = "*": dinc d_loop

	  $tup s_pick, s_pick
	  d_pick = 0
	  $isd d_any, s_pick
	  dift d_any = 1: $tod d_pick, s_pick

	  dift d_pick = 1: s_pick = "1,000,000,007"
	  dift d_pick = 2: s_pick = "1,000,000,000,039"
	  dift d_pick = 3: s_pick = "1,346,294,310,749"
	  dift d_pick = 4: s_pick = "7,177,162,611,713"
	  dift d_pick = 5: s_pick = "13,829,048,559,701"
	  dift d_pick = 6: s_pick = "90,874,329,411,493"
	  dift d_pick = 7: s_pick = "100,000,380,000,361"
	  dift d_pick = 8: s_pick = "570,800,107,412,201"
	  dift d_pick = 9: s_pick = "999,999,999,999,947"
	  dift d_pick = 10: s_pick = "999,999,999,999,989"
	  dift d_pick = 11: s_pick = "2,000,274,172,370,231"
	  dift d_pick = 12: s_pick = "2,276,000,138,167,961"
	  dift d_pick = 13: s_pick = "3,000,058,045,624,691"
	  dift d_pick = 14: s_pick = "6,000,993,394,600,871"
	  dift d_pick = 15: s_pick = "9,002,235,408,655,631"
	  dift d_pick = 16: s_pick = "9,007,196,099,250,001"

	  $ift s_pick = "X": s_pick = dg_xvalue
	  $ift s_pick = "Y": s_pick = dg_yvalue
	  $ift s_pick = "Z": s_pick = dg_zvalue

	  $isd d_any, s_pick

	  dift d_any = 1
		$out s_dashline
		
		$tod d_number, s_pick
		ded$ s_num1, d_number, 0, 0
		$out s_num1

		'save total lines
		dsys d_tealines, 2

		dsec d_sec1

		dift d_type = 1
		    $out "using dfac"
		    dfac d_good, d_number
		endi
		dift d_type = 2
		    $out "using prime array"
	          dg_pass1 = d_number
	          sub_prime_test_using_prime_array
	          d_good = dg_pass1
		endi
		dift d_type = 3
		    $out "using simple"
	          dg_pass1 = d_number
	          sub_prime_test_simple
	          d_good = dg_pass1
		endi

		dsec d_sec2

		'get total lines
		dsys d_any, 2
		d_tealines = d_any - d_tealines
		ded$ s_any, d_tealines, 0, 0
		$out "total lines=" + s_any

		ded$ s_num1, d_number, 0, 0
		ded$ s_num2, d_good, 0, 0

		dift d_good = 1
		    $out s_num1 + " is prime"
		else
		    $out s_num1 + " is divisible by " + s_num2
		endi

		d_sec1 = d_sec2 - d_sec1
		$out "seconds = " + d_sec1
		$inp s_any, "return to continue"
		$ift s_any = "*": dinc d_loop
	  endi
    endw
ends sub_prime_test_one_number

                     
subr sub_prime_numbers
'updated 2010/04/02, 2006/04/10, 2005/02/12, 2005/02/01, 2004/12/03
'find prime numbers
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_nowprime, s_nowprime, d_olderprime, d_process
    vari d_begnumber, d_tofindct, d_count, d_stopnumber
    vari d_ctdiff, d_nowdiff, d_maxdiff, d_thisdiff
    vari d_yesprime, d_mod, d_yesdfac, d_yesbiggernumbers
    vari d_average, d_avetotal, d_shownumber, d_shownotprime
    vari d_showonlynewdiff, d_diffprime, d_teaquadone
    vari d_time1, d_time2, d_loop, d_totprimes
    vari d_tellseconds, d_seconds, d_yesfileout, s_fileout

    d_teaquadone = 10 ^ 15

    d_process = 1
    dift d_process = 1
        'get an output file name
        dran d_any
        dpow d_dot, 99999, 2
        d_any = d_dot * d_any \ 1

        s_fileout = "P" + d_any
        $cut s_fileout, s_fileout, 1, 8
        $app s_fileout, ".txt"

        $inp s_any, "1 = use teapro command DFAC"
        $ift s_any = "*": dinc d_process
        d_yesdfac = 2
        $ift s_any = "1": d_yesdfac = 1
    endi
    dift d_process = 1
        $inp s_any, "1 = output results to file = " + s_fileout
        $ift s_any = "*": dinc d_process
        d_yesfileout = 2
        $ift s_any = "1": d_yesfileout = 1
    endi
    dift d_process = 1
	  d_yesbiggernumbers = 1
        $inp s_any, "1 = decrease numbers otherwise increase"
        $ift s_any = "*": dinc d_process
        $ift s_any = "1": dinc d_yesbiggernumbers
    endi
    dift d_process = 1
        $out "finding prime numbers"
        $out "the number to begin with, return=1"
        s_dot = "12345678901234567890"
        $inp s_any, s_dot
        $ift s_any = "*": dinc d_process
        $isd d_any, s_any
        d_begnumber = 1
        dift d_any = 1: $tod d_begnumber, s_any
    endi
    dift d_process = 1
        $out "enter number to stop at, return=1E16 or 1"
        $inp s_any, s_dot
        $ift s_any = "*": dinc d_process
        $isd d_any, s_any
        dift d_yesbiggernumbers = 1
	      dpow d_stopnumber, 10, 16
        else
            d_stopnumber = 1
        endi
        dift d_any = 1: $tod d_stopnumber, s_any
        ded$ s_any, d_stopnumber, 0, 0
        $out "stop number=" + s_any

        'add 1 if number is not odd
        d_any = d_begnumber % 2
        $out d_begnumber + " % 2 = " + d_any
        dift d_any = 0: dinc d_begnumber

        ded$ s_any, d_begnumber, 0, 0
        $out "starting with=" + s_any
        d_diffprime = d_begnumber
    endi
    dift d_process = 1
        $inp s_any, "enter number to find, return=1E16"
        $ift s_any = "*": dinc d_process
        $isd d_any, s_any
        dpow d_tofindct, 10, 16
        dift d_any = 1: $tod d_tofindct, s_any
        ded$ s_any, d_tofindct, 0, 0
        $out "number to find=" + s_any
    endi
    dift d_process = 1
        $inp s_any, "1=show only greater differences"
        $ift s_any = "*": dinc d_process
        d_showonlynewdiff = 2
        $ift s_any = "1": d_showonlynewdiff = 1

        d_shownumber = 2
    endi
    dift d_process = 1
        $inp s_any, "1=show number being considered"
        $ift s_any = "*": dinc d_process
        $ift s_any = "1": d_shownumber = 1
    endi
    dift d_process = 1
        d_shownotprime = 2
        $inp s_any, "1=show not primes and divisors"
        $ift s_any = "*": dinc d_process
        $ift s_any = "1": d_shownotprime = 1

        'build the decimal array to hold the first 2000 primes
        dift d_yesdfac <> 1: sub_primes_build_array
    endi

    'initialize count
    d_count = 0

    'previous prime
    dsec d_time1
    d_totprimes = 0
    d_olderprime = 0
    d_nowdiff = 1
    d_maxdiff = 0
    d_nowprime = d_begnumber
    d_ctdiff = 0
    d_loop = d_process

    'go until we have found count nfind
    dwhi d_loop = 1
	  dift d_shownumber = 1
		ded$ s_any, d_nowprime, 0, 0
		$sho s_any
	  endi

	  dift d_yesdfac = 1
		dfac d_yesprime, d_nowprime
	  else
            'is d_nowprime a prime
            dg_pass1 = d_nowprime
            sub_prime_test_using_prime_array
            d_yesprime = dg_pass1
	  endi

	  dift d_shownotprime = 1
		dift d_yesprime > 1
		    ded$ s_any, d_nowprime, 0, 0
		    ded$ s_dot, d_yesprime, 0, 0
		    $out "not=" + s_any + ", divisor=" + s_dot
		endi
	  endi

	  'if d_yesprime is 1 then we have a prime
	  dift d_yesprime = 1
		d_totprimes = d_totprimes + d_nowprime
		ded$ s_nowprime, d_nowprime, 0, 0

		'previous prime find difference
		dift d_olderprime > 0
		    d_nowdiff = d_nowprime - d_olderprime		
		    dabs d_nowdiff, d_nowdiff

		    dift d_nowdiff > d_maxdiff
			  d_diffprime = d_olderprime
			  d_maxdiff = d_nowdiff
			  dift d_showonlynewdiff = 1
				s_out = d_count + ". " + s_nowprime 

				ded$ s_any, d_maxdiff, 0, 0
				$app s_out, ", maximum gap=" + s_any 
			
				$out s_out
			  endi
		    endi

		    'averaging of the difference
		    dinc d_ctdiff
		    d_thisdiff = d_nowdiff
		    d_avetotal = d_avetotal + d_thisdiff
		    d_average = d_avetotal / d_ctdiff
		    drou d_average, d_average
		endi

		'increment count d_count
		dinc d_count

		dift d_showonlynewdiff <> 1
		    d_dot = d_teaquadone % d_nowprime

		    s_out = d_count + ". " + s_nowprime

		    dto$ s_any, d_thisdiff, 3, 0
		    $app s_out, " diff=" + s_any
		    $app s_out, " max=" + d_maxdiff  

		    ded$ s_any, d_diffprime, 0, 0
		    $app s_out, " at=" + s_any + " ave="
		    $app s_out, d_average
		    $app s_out, " E15 mod=" + d_dot

		    $out s_out
		    dift d_yesfileout = 1
			  fapp d_any, s_fileout, s_out
			  dbad d_any = 0
		    endi
		else
		    'd_showonlynewdiff = 1 here
		    dsec d_time2
		    d_any = d_time2 - d_time1
	          dift d_any > 5
		        d_time1 = d_time2
		        $sho "finding primes=" + s_nowprime
	          endi
		endi

		'save for previous prime
		d_olderprime = d_nowprime
	  endi

	  'increment by two for the next try at finding a prime
	  dift d_yesbiggernumbers = 1
            d_nowprime = d_nowprime + 2
		dift d_nowprime > d_stopnumber: dinc d_loop
	  else
		d_nowprime = d_nowprime - 2
		dift d_nowprime < d_stopnumber: dinc d_loop
	  endi
        dift d_count >= d_tofindct: dinc d_loop
    endw

    dsec d_time2
    d_any = d_time2 - d_time1
    $out "seconds=" + d_any

    ded$ s_any, d_diffprime, 0, 0
    $out "max diff=" + d_maxdiff + ", at=" + s_any

    ded$ s_any, d_totprimes, 0, 0
    $out "total of primes=" + s_any
    $inp s_any, "return"
ends sub_prime_numbers


subr sub_teaquad_prime_quads_duo
'updated 2008/12/12, 2007/03/06, 2004/10/21
'find prime number quads
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_good, s_fileout, d_tofile, d_process
    vari d_teaquadpart, d_teaquadmult
    vari d_tofindct, s_input, d_factor, s_number
    vari d_count, d_loop, s_date

    d_process = 1
    dift d_process = 1
	  s_fileout = "primquad.txt"
        d_tofile = 2
        $inp s_any, "1=output to file=" + s_fileout
	  $ift s_any = "*": dinc d_process
        $ift s_any = "1": d_tofile = 1
    endi
    dift d_process = 1
        $out "finding prime number quads"
        $out "enter the number to begin with"
        $inp s_input, "123456789012345678901"
	  $ift s_input = "*": dinc d_process
    endi
    dift d_process = 1
        dpow d_tofindct, 10, 5
        $inp s_any, "How many, default=99999"
	  $ift s_any = "*": dinc d_process
        $isd d_any, s_any
        dift d_any = 1 :$tod d_tofindct, s_any
    endi
    dift d_process = 1
	  sg_pass1 = s_input
	  sub_teaquad_from_string
	  d_teaquadpart = dg_pass1
	  d_teaquadmult = dg_pass2
    endi
    dift d_process = 1
        'make sure number ends in 1
        d_teaquadpart = d_teaquadpart \ 10 * 10 + 1

	  'do we need to adjust so that (num-11)%30=0
	  dg_pass1 = d_teaquadpart - 11
	  dg_pass2 = d_teaquadmult
	  dg_pass3 = 30
	  sub_teaquad_mod_op
	  d_dot = dg_pass1
	  d_teaquadpart = d_teaquadpart - d_dot

	  ded$ s_any, d_teaquadpart, 0, 0
	  $out "d_teaquadpart=" + s_any
	  ded$ s_any, d_teaquadmult, 0, 0
	  $out "d_teaquadmult=" + s_any
    endi

    d_count = 0
    d_loop = d_process

    dwhi d_loop = 1
	  dduo d_factor, d_teaquadpart, d_teaquadmult

	  d_any = d_teaquadpart + 6
	  dift d_factor = 1: dduo d_factor, d_any, d_teaquadmult

	  dift d_factor = 1
		'we have a new prime quad
		dinc d_count

		dg_pass1 = d_teaquadpart
		dg_pass2 = d_teaquadmult
		sub_teaquad_to_string
		s_number = sg_pass1

		$dat s_date
		$cut s_date, s_date, 1, 20

		s_out = d_count + "." + " " + s_number
		$app s_out, " " + s_date
		$out s_out

		dift d_tofile = 1
		    fapp d_any, s_fileout, s_out
		    dbad d_any = 0
		endi
	  endi
	  d_teaquadpart = d_teaquadpart + 30
        dift d_count >= d_tofindct: dinc d_loop
    endw
    $inp s_any, "return"
ends sub_teaquad_prime_quads_duo


subr sub_teaquad_mod_op
'updated 2007/03/06
    vari d_any, d_dot
    vari d_teaquadpart, d_teaquadmult, d_teaquadone
    vari d_modulus, d_divisor

    d_teaquadpart = dg_pass1
    d_teaquadmult = dg_pass2
    d_divisor = dg_pass3

    dpow d_teaquadone, 10, 15
    d_any = d_teaquadpart % d_divisor
    d_dot = d_teaquadone % d_divisor * d_teaquadmult
    d_modulus = d_any + d_dot % d_divisor

    dg_pass1 = d_modulus
ends sub_teaquad_mod_op


subr sub_big_pnq30s
'updated 2004/10/21
'find big prime quads
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_good, d_fileout, d_tofindct
    vari d_begin, d_count, d_loop, d_minimumtoshow, d_ynmindecline
    vari d_quadroot, s_quadroot, d_quaddiff, d_primetest
    vari d_quadold, s_quadold, d_quadnew, s_quadnew
    vari s_num1, s_num2, s_num3, s_num4

    d_fileout = 2
    $inp s_any, "1 = output to file = " + sg_fileout
    $ift s_any = "1": d_fileout = 1

    d_ynmindecline = 2
    dpow d_minimumtoshow, 10, 9
    $inp s_any, "enter minimum quad difference to show, 0=declining"
    $isd d_any, s_any
    dift d_any = 1: $tod d_minimumtoshow, s_any
    dift d_minimumtoshow = 0
	  d_ynmindecline = 1
	  dpow d_minimumtoshow, 10, 20
    endi

    $out "finding prime number quads"
    $out "enter the number to begin with"
    $inp s_any, "12345678901234567890123456789"
    $tod d_begin, s_any

    'make sure number ends in 1
    d_begin = d_begin \ 10 * 10 + 1

    ded$ s_any, d_begin, 0, 0
    $out "starting with=" + s_any

    dpow d_tofindct, 10, 9
    $inp s_any, "How many to find, hit return for a billion"
    $isd d_any, s_any
    dift d_any = 1: $tod d_tofindct, s_any

    ded$ s_any, d_tofindct, 0, 0
    $out "number to find=" + s_any
   
    'output beginning numbers to file
    ded$ s_num1, d_begin, 0, 0
    ded$ s_num2, d_tofindct, 0, 0
    $dat s_num3
    s_out = s_num3 + ", begin = " + s_num1 + " for " + s_num2
    dift d_fileout = 1
	  fapp d_any, sg_fileout, s_out
	  dbad d_any = 0
    endi

    d_count = 0
    d_quaddiff = 0

    'old and new quad
    d_quadold = 0
    d_quadnew = 0

    d_primetest = d_begin
    d_loop = 1

    'go until we have found count d_tofindct
    dwhi d_loop = 1
	  d_good = 2

	  dfac d_good, d_primetest

	  dift d_good = 1

		'is d_primetest + 2 a prime
		d_any = d_primetest + 2
	      dfac d_good, d_any
	 
	      dift d_good = 1
                ded$ s_num1, d_primetest, 0, 0
	          ded$ s_num2, d_quaddiff, 0, 0
                s_out = "prime twin=" + s_num1 
	          $app s_out, ", last quad=" + s_quadnew
	          $app s_out, ", diff=" + s_num2
	          $sho s_out

		    'is d_primetest + 6 a prime
		    d_any = d_primetest + 6
		    dfac d_good, d_any

		    dift d_good = 1
			  'is d_primetest + 8 a prime
			  d_any = d_primetest + 8
			  dfac d_good, d_any
		    endi
		endi
	  endi
	  dift d_good = 1
		'we have a new prime quad
		dinc d_count
		d_quadold = d_quadnew
		d_quadnew = d_primetest

		ded$ s_quadnew, d_quadnew, 0, 0

		'get the quad root
		dpow d_any, d_quadnew, 0.5
		d_quadroot = d_any \ 1
		ded$ s_quadroot, d_quadroot, 0, 0

 		'last difference
		d_quaddiff = d_quadnew - d_quadold
		dift d_quaddiff < 0: d_quaddiff = - d_quaddiff

		dift d_count = 1: dpow d_quaddiff, 10, 16

		dift d_quaddiff <= d_minimumtoshow
		    dift d_ynmindecline = 1: d_minimumtoshow = d_quaddiff

		    ded$ s_num1, d_quaddiff, 0, 0
		    ded$ s_num2, d_quadold, 0, 0
		    d_any = d_quadold + 8
		    ded$ s_num3, d_any, 0, 0

		    'we are show the just found quad
		    s_out = d_count + ". " + s_num1 + ", "
		    $app s_out, s_num2 + " / " + s_num3 
		    dift d_fileout = 1: $app s_out, ", " + sg_fileout

		    $out s_out
		endi

		'output to file if small
		d_any = d_quadroot / 16
		dift d_quaddiff < d_any
		    d_dot = d_quadold

		    ded$ s_num1, d_quaddiff, 0, 0
		    ded$ s_num2, d_dot, 0, 0
		    d_any = d_dot + 8
		    ded$ s_num3, d_any, 0, 0

		    'build up the record
		    $dat s_any
		    s_out = d_count + ". " + s_num1 + " at " + s_num2 
		    $app s_out, " / " + s_num3 + " " + s_any

		    dift d_fileout = 1
			  fapp d_any, sg_fileout, s_out
			  dbad d_any = 0
		    endi
		endi
	  endi

	  'increment by 10 or 30 for the next try at finding a quad prime
        dift d_count < 2
	      d_primetest = d_primetest + 10
        else
	      d_primetest = d_primetest + 30
        endi
        dift d_count >= d_tofindct: dinc d_loop
    endw
    $inp s_any, "return"
ends sub_big_pnq30s


subr sub_pnq30_by_210
'updated 2004/10/21
'find pnq30s by jumping 210
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_good, d_fileout, s_date, s_hournew, s_hourold
    vari d_begin, d_count, d_loop, d_delta
    vari d_primetest, d_first
    vari d_perhrpnq30, s_perhr

    $rep sg_fileout, 1, "Q"

    d_fileout = 2
    $inp s_any, "1 = output to file = " + sg_fileout
    $ift s_any = "1": d_fileout = 1

    d_delta = 210
    $inp s_any, "1 = decreasing numbers"
    $ift s_any = "1": d_delta = - 210

    $out "finding PNQ30s by 210"
    $out "enter the number to begin with"

    d_begin = 1
    $inp s_any, "12345678901234567890123456789"
    $isd d_any, s_any
    dift d_any = 1: $tod d_begin, s_any

    'is d_begin of the form 210 * n + d_first where n is an integer
    'find n into d_any
    $tod d_first, "1006301"
    d_any = d_begin - d_first \ 210
    ded$ s_any, d_any, 0, 0
    $out "n=" + s_any

    'find the place to begin
    d_begin = d_any * 210 + d_first

    'output beginning numbers to file
    $dat s_date
    ded$ s_any, d_begin, 0, 0
    s_out = "begin = " + s_any + " " + s_date
    $out s_out
    dift d_fileout = 1
	  fapp d_any, sg_fileout, s_out
	  dbad d_any = 0
    endi

    s_hourold = "x"
    d_perhrpnq30 = 0

    d_count = 0
    d_primetest = d_begin
    d_loop = 1

    'go until we stop
    dwhi d_loop = 1
	  dfac d_good, d_primetest

	  dift d_good = 1
		'is d_primetest + 2 a prime
		d_any = d_primetest + 2
	      dfac d_good, d_any
	 
	      dift d_good = 1
		    'is d_primetest + 6 a prime
		    d_any = d_primetest + 6
		    dfac d_good, d_any

		    dift d_good = 1
			  'is d_primetest + 8 a prime
			  d_any = d_primetest + 8
			  dfac d_good, d_any

			  dift d_good = 1

	'we have a prime quadruplet
	'12345678901234567890123456789012345
	'17-DEC-2002 03:56:22 20021217035622
	$dat s_date

	'get the hour for below
	$cut s_hournew, s_date, 13, 2

	$ift s_hournew <> s_hourold
	    'get perhr change
	    d_any = d_primetest - d_perhrpnq30
	    dabs d_any, d_any
	    ded$ s_perhr, d_any, 0, 0

	    d_perhrpnq30 = d_primetest
	endi

	$cut s_date, s_date, 1, 20
	ded$ s_any, d_primetest, 0, 0
	s_out = "quad=" + s_any 
	$app s_out, " " + s_date
	$app s_out, ", pnq30ct=" + d_count
	$app s_out, ", perhr=" + s_perhr

	$ift s_hournew <> s_hourold
	    $out s_out
	    s_hourold = s_hournew

          dift d_fileout = 1
	        fapp d_any, sg_fileout, s_out
		  dbad d_any = 0
	    endi
	else
          $sho s_out
	endi
				
				'is d_primetest + 30 a prime
				d_any = d_primetest + 30
				dfac d_good, d_any

				dift d_good = 1
				    'is d_primetest + 32 a prime
				    d_any = d_primetest + 32
				    dfac d_good, d_any

				    dift d_good = 1
					  'is d_primetest + 36 a prime
					  d_any = d_primetest + 36
					  dfac d_good, d_any

					  dift d_good = 1
						'is d_primetest + 38 a prime
						d_any = d_primetest + 38
						dfac d_good, d_any
	  dift d_good = 1
		'we have a pnq30
		dinc d_count
	      ded$ s_dot, d_primetest, 0, 0

	      'show the just found pnq30
		$dat s_date
		$cut s_date, s_date, 1, 20
	      s_out = "] PNQ30= " + s_dot + "  " + s_date 
		
	      $out s_out

	      'build up the record
	      dift d_fileout = 1
		    fapp d_any, sg_fileout, s_out
		    dbad d_any = 0
		endi
	  endi
					  endi
				    endi
				endi
			  endi
		    endi
		endi
	  endi

        'change by 210
        d_primetest = d_primetest + d_delta
    endw
ends sub_pnq30_by_210


subr sub_pnq30_by_pivcom
'updated 2004/10/21
'find pnq30s by pivcom
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_good, d_fileout, s_date, s_hournew, s_hourold
    vari d_begin, d_count, d_loop, d_delta
    vari d_primetest, d_first
    vari d_perhrpnq30, s_perhr
    vari d_ctpivcom, d_pivcom, d_modulus

    $rep sg_fileout, 1, "P"

    d_fileout = 2
    $inp s_any, "1 = output to file = " + sg_fileout
    $ift s_any = "1": d_fileout = 1

    d_delta = 1
    $inp s_any, "1 = decreasing numbers"
    $ift s_any = "1": d_delta = - 1

    $out "finding PNQ30s by PIVCOM"
    $out "enter the number to begin with"

    d_begin = 1
    $inp s_any, "12345678901234567890123456789"
    $isd d_any, s_any
    dift d_any = 1: $tod d_begin, s_any

    'find d_pivcom and d_ctpivcom for d_begin
    d_ctpivcom = d_begin \ 210
    dift d_ctpivcom < 1: d_ctpivcom = 1

    $out "d_ctpivcom=" + d_ctpivcom

    'find the place to begin
    d_begin = d_ctpivcom * 210 - 19

    'output beginning numbers to file
    $dat s_date
    ded$ s_any, d_begin, 0, 0
    s_out = "ctpivcom=" + d_ctpivcom 
    $app s_out, " begin=" + s_any + " " + s_date
    $out s_out
    dift d_fileout = 1
	  fapp d_any, sg_fileout, s_out
	  dbad d_any = 0
    endi

    s_hourold = "x"
    d_perhrpnq30 = 0

    d_count = 0
    d_primetest = d_begin
    d_loop = 1

    'go until we stop
    dwhi d_loop = 1

	  'for d_ctpivcom to be good the following must be
	  d_modulus = d_ctpivcom % 11 % 3 - 1
	  dift d_modulus = 0: d_modulus = d_ctpivcom % 13
	  dift d_modulus > 0: d_modulus = d_ctpivcom % 17
	  dift d_modulus > 0: d_modulus = d_ctpivcom % 19

	  dift d_modulus > 0
		d_primetest = d_ctpivcom * 210 - 19
	      dfac d_good, d_primetest
	  else
		dinc d_good
	  endi

	  dift d_good = 1
		'is d_primetest + 2 a prime
		d_any = d_primetest + 2
	      dfac d_good, d_any
	 
	      dift d_good = 1
		    'is d_primetest + 6 a prime
		    d_any = d_primetest + 6
		    dfac d_good, d_any

		    dift d_good = 1
			  'is d_primetest + 8 a prime
			  d_any = d_primetest + 8
			  dfac d_good, d_any

			  dift d_good = 1

	'we have a prime quadruplet
	'12345678901234567890123456789012345
	'17-DEC-2002 03:56:22 20021217035622
	$dat s_date

	'get the hour for below
	$cut s_hournew, s_date, 13, 2

	$ift s_hournew <> s_hourold
	    'get perhr change
	    d_any = d_primetest - d_perhrpnq30
	    dabs d_any, d_any
	    ded$ s_perhr, d_any, 0, 0

	    d_perhrpnq30 = d_primetest
	endi

	$cut s_date, s_date, 1, 20
	ded$ s_any, d_primetest, 0, 0
	s_out = "quad=" + s_any 
	$app s_out, " " + s_date
	$app s_out, ", pnq30ct=" + d_count
	$app s_out, ", perhr=" + s_perhr

	$ift s_hournew <> s_hourold
	    $out s_out
	    s_hourold = s_hournew

          dift d_fileout = 1
	        fapp d_any, sg_fileout, s_out
		  dbad d_any = 0
	    endi
	else
          $sho s_out
	endi
				
				'is d_primetest + 30 a prime
				d_any = d_primetest + 30
				dfac d_good, d_any

				dift d_good = 1
				    'is d_primetest + 32 a prime
				    d_any = d_primetest + 32
				    dfac d_good, d_any

				    dift d_good = 1
					  'is d_primetest + 36 a prime
					  d_any = d_primetest + 36
					  dfac d_good, d_any

					  dift d_good = 1
						'is d_primetest + 38 a prime
						d_any = d_primetest + 38
						dfac d_good, d_any
	  dift d_good = 1
		'we have a pnq30
		dinc d_count
	      ded$ s_dot, d_primetest, 0, 0

	      'show the just found pnq30
		$dat s_date
		$cut s_date, s_date, 1, 20
	      s_out = "] PNQ30= " + s_dot + "  " + s_date 
		
	      $out s_out

	      'build up the record
	      dift d_fileout = 1
		    fapp d_any, sg_fileout, s_out
		    dbad d_any = 0
		endi
	  endi
					  endi
				    endi
				endi
			  endi
		    endi
		endi
	  endi

        'increment the count pivcom d_ctpivcom
        d_ctpivcom = d_ctpivcom + d_delta
    endw
ends sub_pnq30_by_pivcom


subr sub_pnq30_by_modulus
'updated 2005/10/23, 2005/10/22, 2005/10/19, 2004/10/21
'find pnq30s by modulus
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_good, d_fileout, s_date, s_hournew, s_hourold
    vari d_begin, d_loop, d_which
    vari s_tfile, s_pfile, d_filebyte, s_record
    vari d_primetest, s_primetest, d_first
    vari d_perhrpnq30, s_perhr
    vari d_pivcom, s_pivcom, d_modulus, s_5tp39
    vari d_number, d_index, d_around, d_divisor

    'd_which=1 for enter beginning number
    'd_which=2 for begin again get number from file
    d_which = dg_pass1

    s_tfile = "tpnq30.txt"
    s_pfile = "ppnq30.txt"

    dift d_which = 1
	  'enter beginning number
        $out "beginning number"
        $inp s_any, "123456789012345678901"
        d_begin = 99999
        $isd d_any, s_any
        dift d_any = 1: $tod d_begin, s_any
    endi

    dift d_which = 2
	  'get beginning number from file
	  d_begin = 0
	  d_filebyte = 1
	  d_loop = 1
	  dwhi d_loop = 1
		fsip s_record, s_tfile, d_filebyte
		dift d_filebyte = 0
		    dinc d_loop
		else
		    $lok d_any, s_record, 1, " "
		    $cut s_any, s_record, 1, d_any
		    $trb s_any, s_any
		    $isd d_any, s_any
		    dift d_any = 1
			  $tod d_begin, s_any
			  $out s_any
		    else
			  $out s_record
		    endi
		endi	 
	  endw
    endi

    'the term PIVCOM was invented by Roger Hargrave in 2002
    'find d_pivcom for d_begin
    d_pivcom = d_begin \ 210 * 210
    dift d_pivcom < 210: d_pivcom = 210

    ded$ s_pivcom, d_pivcom, 0, 0
    $out "d_pivcom=" + s_pivcom

    'find the place to begin
    d_begin = d_pivcom - 19

    'output beginning numbers to file
    $dat s_date
    $cut s_date, s_date, 1, 20

    s_out = "pivcom=" + s_pivcom 

    ded$ s_any, d_begin, 0, 0
    $app s_out, " begin=" + s_any + " " + s_date

    $out s_out

    fapp d_any, s_tfile, s_out
    dbad d_any = 0

    'put primes in array
    d_number = 11
    d_index = 1
    dwhi d_index <= 2000
	  d_modulus = 99999
	  dwhi d_modulus > 1
		dfac d_modulus, d_number
		dift d_modulus > 1: d_number = d_number + 2
	  endw
	  dtoi d_index, d_number
	  d_number = d_number + 2
	  
	  dinc d_index
    endw

    s_hourold = "x"
    d_perhrpnq30 = 0

    d_primetest = d_begin
    d_loop = 1

    'go until we stop
    dwhi d_loop = 1

	  d_number = d_pivcom + 19
	  d_index = 1
	  d_around = 1
        dwhi d_around = 1
	      itod d_divisor, d_index
	      d_modulus = d_number % d_divisor

	      dift d_modulus = 0: dinc d_around
	      dift d_modulus = 2: dinc d_around
	      dift d_modulus = 6: dinc d_around
	      dift d_modulus = 8: dinc d_around
	      dift d_modulus = 30: dinc d_around
	      dift d_modulus = 32: dinc d_around
	      dift d_modulus = 36: dinc d_around
	      dift d_modulus = 38: dinc d_around

	      dinc d_index
	      dift d_index > 2000: d_around = 99999
        endw

	  dift d_around = 99999
		d_primetest = d_pivcom - 19
	      dfac d_good, d_primetest
	  else
		dinc d_good
	  endi

	  dift d_good = 1
		
		'we have a prime
		'12345678901234567890123456789012345
		'17-DEC-2002 03:56:22 20021217035622
		$dat s_date

		'get the hour for below
		$cut s_hournew, s_date, 13, 2

		$ift s_hournew <> s_hourold
		    'get perhr change
		    d_any = d_primetest - d_perhrpnq30
		    dabs d_any, d_any
		    ded$ s_perhr, d_any, 0, 0
		    s_perhr = " perhr=" + s_perhr

		    d_perhrpnq30 = d_primetest
		endi

		$cut s_date, s_date, 1, 20
		ded$ s_any, d_primetest, 0, 0
		s_out = s_any + " " + s_date

		$ift s_hournew <> s_hourold
		    $app s_out, s_perhr
		    s_hourold = s_hournew
		    fapp d_any, s_tfile, s_out
		    dbad d_any = 0

		    $out s_out
		else
		    $sho s_out
		endi

		'is d_primetest + 2 a prime
		d_any = d_primetest + 2
	      dfac d_good, d_any
	 
	      dift d_good = 1
		    'is d_primetest + 6 a prime
		    d_any = d_primetest + 6
		    dfac d_good, d_any

		    dift d_good = 1
			  'is d_primetest + 8 a prime
			  d_any = d_primetest + 8
			  dfac d_good, d_any

			  dift d_good = 1

				
				'is d_primetest + 30 a prime
				d_any = d_primetest + 30
				dfac d_good, d_any

				dift d_good = 1
				    'is d_primetest + 32 a prime
				    d_any = d_primetest + 32
				    dfac d_good, d_any

				    dift d_good = 1
					  'is d_primetest + 36 a prime
					  d_any = d_primetest + 36
					  dfac d_good, d_any

					  dift d_good = 1
						'is d_primetest + 38 a prime
						d_any = d_primetest + 38
						dfac d_good, d_any
	  dift d_good = 1
		'we have a pnq30
		'do we have a 5TP39
		s_5tp39 = sg_nothing
		d_any = d_primetest + 18
		dfac d_dot, d_any

		dift d_dot = 1
		    d_any = d_primetest + 20
		    dfac d_dot, d_any
		    dift d_dot = 1: s_5tp39 = " 5TP39"
		endi

	      ded$ s_primetest, d_primetest, 0, 0

	      'show the just found pnq30
		$dat s_date
		$cut s_date, s_date, 1, 20

	      s_out = "] 000:PNQ30= " 
		$app s_out, s_primetest 
		$app s_out, "  " + s_date 
		$app s_out, s_5tp39
		
	      $out s_out + s_perhr

	      fapp d_any, s_tfile, s_out
	      dbad d_any = 0

	      fapp d_any, s_tfile, s_primetest
	      dbad d_any = 0

	      fapp d_any, s_pfile, s_out
	      dbad d_any = 0
	  endi
					  endi
				    endi
				endi
			  endi
		    endi
		endi
	  endi

        'increment the pivcom d_pivcom
        d_pivcom = d_pivcom + 210
    endw
ends sub_pnq30_by_modulus


subr sub_getgaps_begin_again
'updated 2004/10/21
'get gaps begin again
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_oldgap, d_nowgap, d_maxgap, s_date
    vari s_fileout, d_filebyte, d_loop, s_record
    vari d_nowprime, s_nowprime
    vari d_olderprime, s_olderprime, d_yesprime
    vari d_time1, d_time2, d_time3, d_timeprime, s_timerate

    s_fileout = "gaps01.txt"
    d_olderprime = 3
    d_maxgap = 0
    d_oldgap = 0
    d_filebyte = 1
    d_loop = 1

    $inp s_any, "enter getgaps beginning number or return"
    $isd d_any, s_any
    dift d_any = 1
	  $tod d_olderprime, s_any
	  dinc d_loop
    endi

    dwhi d_loop = 1
	  'find the last number in the file to begin with
	  fsip s_record, s_fileout, d_filebyte

	  dift d_filebyte > 0
		$out s_record

		'get d_maxgap
		$lok d_dot, s_record, 1, "max="
		dift d_dot > 0
		    d_dot = d_dot + 4
		    $cut s_dot, s_record, d_dot, 9999
		    $lok d_dot, s_dot, 1, " "
		    dift d_dot > 0
			  $cut s_dot, s_dot, 1, d_dot
			  $isd d_dot, s_dot
			  dift d_dot = 1: $tod d_maxgap, s_dot
		    endi
		endi

		'get d_oldgap
		$lok d_dot, s_record, 1, "gap="
		dift d_dot > 0
		    d_dot = d_dot + 4
		    $cut s_dot, s_record, d_dot, 9999
		    $lok d_dot, s_dot, 1, " "
		    dift d_dot > 0
			  $cut s_dot, s_dot, 1, d_dot
			  $isd d_dot, s_dot
			  dift d_dot = 1: $tod d_oldgap, s_dot
		    endi
		endi

		'get d_olderprime
		$lok d_dot, s_record, 1, "prime="
		dift d_dot > 0
		    d_dot = d_dot + 6
		    $cut s_dot, s_record, d_dot, 9999
		    $trb s_dot, s_dot
		    $app s_dot, " "
		    $lok d_dot, s_dot, 1, " "
		    $cut s_dot, s_dot, 1, d_dot
		    $isd d_any, s_dot
		    dift d_any = 1: $tod d_olderprime, s_dot
		endi
	  else 
		dinc d_loop
	  endi	  
    endw

    'is d_olderprime even
    dabs d_olderprime, d_olderprime
    d_any = d_olderprime % 2
    dift d_any = 0: ddec d_olderprime

    ded$ s_olderprime, d_olderprime, 0, 0
    s_out = "max=" + d_maxgap
    $app s_out, " gap=" + d_oldgap
    $app s_out, " begin=" + s_olderprime
    $out s_out
    fapp d_any, s_fileout, s_out
    dbad d_any = 0

    d_nowprime = d_olderprime + 2
    d_timeprime = d_olderprime
    dsec d_time1
    d_time3 = d_time1 + 60

    'go until we stop
    dwhi 1 = 1
	  dfac d_yesprime, d_nowprime
	  dift d_yesprime = 1

	      dsec d_time2
	      dift d_time2 > d_time3
	          ded$ s_nowprime, d_nowprime, 0, 0

		    d_any = d_time2 - d_time1
	          d_any = d_nowprime - d_timeprime / d_any * 3600
	          ded$ s_any, d_any, 0, 0
	          s_timerate = " hr=" + s_any

	          s_out = "prime=" + s_nowprime
	          $app s_out, " max=" + d_maxgap
	          $app s_out, s_timerate
	          $sho s_out

		    'show progress every 60 seconds
	          d_timeprime = d_nowprime
		    d_time3 = d_time2 + 60
		    d_time1 = d_time2
	      endi

		'we have a new d_nowprime
		d_nowgap = d_nowprime - d_olderprime
		dift d_nowgap > d_maxgap: d_maxgap = d_nowgap

		dift d_nowgap > 200
		    ded$ s_olderprime, d_olderprime, 0, 0
		    $dat s_date
		    $cut s_date, s_date, 1, 20
		    s_out = "max=" + d_maxgap
		    $app s_out, " gap=" + d_nowgap
		    $app s_out, " prime= " + s_olderprime
		    $app s_out, " " + s_date
		    $app s_out, s_timerate
		    $out s_out

		    fapp d_any, s_fileout, s_out
		    dbad d_any = 0
		endi

		d_olderprime = d_nowprime
	  endi

        'increment d_nowprime
        d_nowprime = d_nowprime + 2
    endw
ends sub_getgaps_begin_again


subr sub_compare_dfac_and_dfak
'updated 2007/09/22
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_teaquadpart, d_teaquadone, d_teaquadmult
    vari d_dfac, d_dfak
    vari d_loop, d_seconds, d_count, d_maxcount
    vari d_process, s_number, d_number

    d_process = 1
    dift d_process = 1
	  $inp s_any, "enter number to begin"
	  $ift s_any = "*": dinc d_process
	  $isd d_any, s_any
	  dift d_any = 1: $tod d_number, s_any
    endi
    dift d_process = 1
	  'make sure the number is odd
	  d_any = d_number % 2
	  dift d_any <> 1: dinc d_number
    endi
    dift d_process = 1
	  $inp s_any, "enter max number to compare"
	  $ift s_any = "*": dinc d_process
	  $isd d_any, s_any
	  d_maxcount = 0
	  dift d_any = 1: $tod d_maxcount, s_any
    endi

    d_count = 0
    d_loop = d_process
    dwhi d_loop = 1

	  dfac d_dfac, d_number
	  dfak d_dfak, d_number, 0

	  dift d_dfac = 1: dinc d_count

	  ded$ s_any, d_dfac, 0, 0
	  ded$ s_dot, d_dfak, 0, 0
	  ded$ s_number, d_number, 0, 0

	  s_out = d_count + ". " + s_number
	  $app s_out, " dfac=" + s_any
	  $app s_out, " dfak=" + s_dot

	  dift d_dfac = d_dfak
		$app s_out, " equal"
		dift d_dfac = 1: $out s_out
	  else
		$app s_out, " not equal"
		$out s_out

		$inp s_any, "not equal"
	  endi

	  d_number = d_number + 2
	  dift d_count >= d_maxcount: dinc d_loop
    endw

    $inp s_any, "done"
ends sub_compare_dfac_and_dfak


subr sub_teaquad_primes_test_one_number
'updated 2007/07/19
'2007/03/04, 2007/02/26, 2007/02/25, 2007/02/24, 2006/12/06
'2006/11/15, 2006/11/14, 2006/11/12, 2006/11/11, 2006/10/25
'primes 9quad greater than 9E15 as total of two numbers
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_teaquadpart, d_factor, 
    vari d_loop, d_seconds, s_input, d_pick
    vari d_process, d_teaquadone, d_teaquadmult, s_default

    dpow d_teaquadone, 10, 15

    d_process = 1
    d_loop = d_process
    dwhi d_loop = 1
	  $out "1. 39,713,433,671"
	  $out "11. 6,000,000,000,000,001"
	  $out "21. 9,002,235,408,655,631"
	  $out "31. 13,086,603,727,831,391"
	  $out "41. 108,000,000,000,000,001"
	  $out "51. 999,999,999,999,999,967"
	  $out "61. 999,999,999,999,999,989"
        $inp s_input, "choose or enter number to test"

	  d_pick = 0
	  $len d_any, s_input
	  dift d_any < 4
		$isd d_any, s_input
		dift d_any = 1: $tod d_pick, s_input
	  endi

	  $ift s_input = "*"
		dinc d_process
		dinc d_loop
	  endi

        dift d_process = 1
	      dift d_pick = 1: s_input = "39,713,433,671"
	      dift d_pick = 11: s_input = "6,000,000,000,000,001"
	      dift d_pick = 21: s_input = "9,002,235,408,655,631"
	      dift d_pick = 31: s_input = "13,086,603,727,831,391"
	      dift d_pick = 41: s_input = "108,000,000,000,000,001"
	      dift d_pick = 51: s_input = "999,999,999,999,999,967"
	      dift d_pick = 61: s_input = "999,999,999,999,999,989"

	      $out s_input 
	      sg_pass1 = s_input
	      sub_teaquad_from_string
	      d_teaquadpart = dg_pass1
	      d_teaquadmult = dg_pass2

	      ded$ s_any, d_teaquadpart, 0, 0
	      $out "d_teaquadpart=" + s_any

	      ded$ s_any, d_teaquadmult, 0, 0
	      $out "d_teaquadmult=" + s_any
        endi
        dift d_process = 1
	      dsec d_seconds
	      dfak d_factor, d_teaquadpart, d_teaquadmult
	      dsec d_any

	      d_seconds = d_any - d_seconds
	      $out "seconds=" + d_seconds

	      ded$ s_any, d_teaquadpart, 0, 0
	      $out "d_teaquadpart=" + s_any

	      ded$ s_any, d_teaquadmult, 0, 0
	      $out "d_teaquadmult=" + s_any

	      ded$ s_any, d_factor, 0, 0
	      $out "d_factor=" + s_any
		$inp s_any, "return"
        endi
    endw
ends sub_teaquad_primes_test_one_number


subr sub_teaquad_primes_test_in_file
'updated 2007/07/22, 2007/07/20
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_teaquadpart, d_factor, s_number, s_aster
    vari d_loop, d_good, d_seconds, s_input, d_pick
    vari d_process, d_teaquadone, d_teaquadmult, s_default
    vari s_filename, s_record, d_filebyte
    vari d_count1, d_count2

    $ch$ s_aster, "*", 70

    d_process = 1
    dift d_process = 1
	  $inp s_filename, "enter filename"
	  $ift s_filename = "*": dinc d_process
    endi

    d_filebyte = 1
    d_loop = d_process
    dwhi d_loop = 1
	  d_good = 1
	  fsip s_record, s_filename, d_filebyte
	  dift d_filebyte = 0
		dinc d_good
		dinc d_loop
	  endi
	  dift d_good = 1
		$trb s_record, s_record
		$isd d_any, s_record
		dift d_any <> 1
		    $out "not number " + s_record
		    dinc d_good
		endi
	  endi
	  dift d_good = 1
		$out s_aster
	      $out s_record 
	      sg_pass1 = s_record
	      sub_teaquad_from_string
	      d_teaquadpart = dg_pass1
	      d_teaquadmult = dg_pass2
		sub_teaquad_to_string
		s_number = sg_pass1 

	      ded$ s_any, d_teaquadpart, 0, 0
	      $out "d_teaquadpart=" + s_any

	      ded$ s_any, d_teaquadmult, 0, 0
	      $out "d_teaquadmult=" + s_any
		$out s_number

	      dsec d_seconds
	      dfak d_factor, d_teaquadpart, d_teaquadmult
	      dsec d_any

	      d_seconds = d_any - d_seconds
		$out "seconds=" + d_seconds
		$out "factor=" + d_factor

		dift d_factor = 1
		    dinc d_count1
		    $out "prime"
		else
		    dinc d_count2
		    $inp s_any, "not prime"		    
		    $ift s_any = "*": dinc d_loop
		endi
	  endi
    endw
    $inp s_any, "primes=" + d_count1 + " not=" + d_count2
ends sub_teaquad_primes_test_in_file


subr sub_teaquad_primes_find
'updated 2009/09/06
'2007/10/07, 2007/03/04, 2007/02/24, 2007/01/07, 2007/01/06
'2006/12/11, 2006/12/09, 2006/12/08, 2006/12/07, 2006/12/06
'2006/11/27, 2006/11/25, 2006/11/13, 2006/11/12, 2006/11/11
'2006/10/29, 2006/10/28, 2006/10/27, 2006/10/26, 2006/10/25
'find primes teaquad greater than 1E15 as total of two numbers
    vari d_any, s_any, d_dot, s_dot, s_out
    vari s_number, d_teaquadpart, d_teaquadmult
    vari d_count, s_count, d_yesduos
    vari d_process, d_loop, d_show, d_factor, s_factor
    vari d_seconds, d_previous, d_gap, d_ctmax
    vari d_teaquadone, d_maxteaquadpart, d_maxteaquadmult
    vari d_stopteaquadpart, d_stopteaquadmult
    vari d_file, s_filename, s_date, d_factfactor
    vari d_sec1, d_sec2

    'stop for sure at 400E18
    dpow d_maxteaquadpart, 10, 15
    $tod d_maxteaquadmult, "400,000"

    d_teaquadone = d_maxteaquadpart

    d_process = 1
    dift d_process = 1
	  d_teaquadpart = 1
	  d_teaquadmult = 1
        $inp s_number, "enter begin number, default=teaquad"
	  $ift s_number = "*": dinc d_process
    endi
    dift d_process = 1
	  $trb s_number, s_number
	  $ift s_number <> sg_nothing
	      sg_pass1 = s_number
	      sub_teaquad_from_string
	      d_teaquadpart = dg_pass1
	      d_teaquadmult = dg_pass2
	  endi

        d_any = d_teaquadpart % 2
        dift d_any = 0: dinc d_teaquadpart

        ded$ s_any, d_teaquadpart, 0, 0
        $out "teaquadpart=" + s_any
        $out "teaquadmult=" + d_teaquadmult
    endi
    dift d_process = 1
	  d_show = 2
	  $inp s_any, "1=show tries"
	  $ift s_any = "*": dinc d_process
	  $ift s_any = "1": d_show = 1
    endi
    dift d_process = 1
	  d_ctmax = 99999
	  $inp s_any, "how many to find, default=99999"
	  $ift s_any = "*": dinc d_process
	  $isd d_any, s_any
	  dift d_any = 1: $tod d_ctmax, s_any     
    endi
    dift d_process = 1
	  d_yesduos = 2
	  $inp s_any, "1=duos"
	  $ift s_any = "*": dinc d_process
	  $ift s_any = "1": d_yesduos = 1
    endi
    dift d_process = 1
	  d_file = 2
	  s_filename = "primes99.txt"
	  $inp s_any, "1=output to file " + s_filename
	  $ift s_any = "*": dinc d_process
	  $ift s_any = "1"
		d_file = 1     
		flen d_any, s_filename
		dift d_any >= 0
		    $inp s_any, "1=purge old file"
		    $ift s_any = "*": dinc d_process
		    $ift s_any = "1": fdel d_any, s_filename
		endi
	  endi
    endi
    dift d_process = 1
	  d_stopteaquadpart = d_maxteaquadpart
	  d_stopteaquadmult = d_maxteaquadmult
	  $inp s_any, "enter stop number if wanted"
	  $ift s_any = "*": dinc d_process
	  
	  sg_pass1 = s_any
	  sub_teaquad_from_string
	  d_stopteaquadpart = dg_pass1
	  d_stopteaquadmult = dg_pass2
	  s_out = "stop: teaquadpart=" + d_stopteaquadpart
	  $app s_out, ", teaquadmult=" + d_stopteaquadmult
	  $out s_out
    endi

    dsec d_sec1
    d_count = 0
    d_loop = d_process
    dwhi d_loop = 1
	  dsec d_seconds

	  dift d_yesduos = 1
	      'use teapro command for fast method
	      dduo d_factor, d_teaquadpart, d_teaquadmult
	  else
	      'use teapro command for fast method
	      dfak d_factor, d_teaquadpart, d_teaquadmult
	  endi

	  dsec d_any
	  d_seconds = d_any - d_seconds

	  $dat s_date
	  $cut s_date, s_date, 1, 20

	  'is the factor prime
	  dfac d_factfactor, d_factor

        'show number just tested
        dg_pass1 = d_teaquadpart
        dg_pass2 = d_teaquadmult
        sub_teaquad_to_string
        s_number = sg_pass1

	  ded$ s_factor, d_factor, 0, 0

        'if factor is prime append ":P"
        dift d_factfactor = 1: $app s_factor, ":P"

        s_out = s_number + " " + s_date
	  $app s_out, " fact=" + s_factor
	  $app s_out, " sec=" + d_seconds
	  $sho s_out

	  dift d_show = 1
		$out s_out

	      dift d_file = 1: fapp d_any, "primes99.txt", s_out
	  endi

	  dift d_factfactor <> 1
		$out s_out
		$inp s_any, "factor not prime"
		$ift s_any = "*": dinc d_loop
	  endi

	  dift d_factor = 1
		'we have a teaquad prime
		dinc d_count
		s_count = "0000000" + d_count
		$off s_count, s_count, 7

		'find gap to previous prime
		d_gap = 0
		dift d_previous > 0: d_gap = d_teaquadpart - d_previous
		d_previous = d_teaquadpart

		dg_pass1 = d_teaquadpart
		dg_pass2 = d_teaquadmult
		sub_teaquad_to_string
		s_number = sg_pass1

		dift d_yesduos = 1
	          s_out = s_count + ".duo=" + s_number
		else
	          s_out = s_count + ".prime=" + s_number
		endi

		$app s_out, " " + s_date
		$app s_out, " sec=" + d_seconds
		$app s_out, " gap=" + d_gap
	      $out s_out

		dift d_file = 1
	          s_out = "]" + " " + s_count 
		    dift d_yesduos = 1
		        $app s_out, ".duo=" + s_number
		    else
		        $app s_out, ".prime=" + s_number
		    endi
		    $app s_out, " " + s_date
		    $app s_out, " gap=" + d_gap

		    fapp d_any, "primes99.txt", s_out
		    dbad d_any = 0
		endi
	  endi
	 
	  d_teaquadpart = d_teaquadpart + 2
	  dift d_teaquadpart > d_teaquadone
		dinc d_teaquadmult
		d_teaquadpart = 1
	  endi

	  dift d_count >= d_ctmax: dinc d_loop

	  dift d_stopteaquadpart > 0
		dift d_teaquadmult >= d_stopteaquadmult
		    dift d_teaquadpart >= d_stopteaquadpart: dinc d_loop
		endi
	  endi

	  'cannot go over 400E18
	  dift d_teaquadmult >= d_maxteaquadmult
		dift d_teaquadpart >= d_maxteaquadpart: dinc d_loop
	  endi
    endw
    dsec d_sec2
    d_any = d_sec2 - d_sec1
    $inp s_any, "done, sec=" + d_any
ends sub_teaquad_primes_find


subr sub_9quad_prime_test
'updated 2006/10/25
'primes 9quad than 2^53 as total of two numbers
    vari d_any, s_any, d_dot, s_dot
    vari d_number1, d_number2, d_factor
    vari d_loop, d_root, d_total
    vari d_divisor, d_mod1, d_mod2, d_mod3

    d_number1 = dg_pass1
    d_number2 = dg_pass2

    d_total = d_number1 + d_number2
    dpow d_root, d_total, 0.5
    d_factor = 1
    d_divisor = 3

    d_loop = 1
    dwhi d_loop = 1
	  d_mod1 = d_number1 % d_divisor
	  d_mod2 = d_number2 % d_divisor
	  d_mod3 = d_mod1 + d_mod2 % d_divisor

	  dift d_mod3 = 0
		d_factor = d_divisor
		dinc d_loop
	  else
		d_divisor = d_divisor + 2
		dift d_divisor > d_root: dinc d_loop
	  endi
    endw
    dg_pass1 = d_factor
ends sub_9quad_prime_test


subr sub_9quad_to_string
'updated 2006/11/25, 2006/11/12, 2006/10/27
'change a 9quad number to a string
    vari d_any, s_any, d_dot, s_dot
    vari d_9part, d_9mult, s_line
    vari s_beg, d_beg

    d_9part = dg_pass1
    d_9mult = dg_pass2
'123456789012345678901234567
'123,456,789,012,345,678,901
'123456789012345678901

    dto$ s_line, d_9part, 0, 0
    $ch$ s_any, "0", 30
    s_line = s_any + s_line
    $off s_line, s_line, 21

    $cut s_beg, s_line, 1, 6
    $tod d_beg, s_beg
    d_beg = d_9mult * 9 + d_beg
    $ch$ s_any, "0", 6
    s_beg = s_any + d_beg
    $off s_beg, s_beg, 6
    $rep s_line, 1, s_beg

    'put in commas
    $ins s_line, 4, ","
    $ins s_line, 8, ","
    $ins s_line, 12, ","
    $ins s_line, 16, ","
    $ins s_line, 20, ","
    $ins s_line, 24, ","

    'take off leading zeros and commas
    d_dot = 1
    dwhi d_dot = 1
	  dinc d_dot
	  $cut s_any, s_line, 1, 1
	  $ift s_any = "0"
		$cut s_line, s_line, 2, 99
		d_dot = 1
	  endi
	  $ift s_any = ","
		$cut s_line, s_line, 2, 99
		d_dot = 1
	  endi
    endw
    sg_pass1 = s_line
ends sub_9quad_to_string


subr sub_9quad_from_string
'updated 2006/11/25, 2006/11/12, 2006/10/28
'9quad string to d_9part
    vari d_any, s_any, d_dot, s_dot
    vari d_9part, d_9mult
    vari s_line, d_good, d_long, s_beg, d_beg

    s_line = sg_pass1
    d_9part = 0
    d_9mult = 0
'123456789012345678901234567
'123,456,789,012,345,678,901
'123456789012345678901

    d_good = 1
    dift d_good = 1
	  'eliminate commas and validate for all numbers
	  $trb s_line, s_line
	  $swp s_line, ",", sg_nothing
	  $ist d_any, s_line, "9"
	  dift d_any <> 1: dinc d_good
    endi
    dift d_good = 1
	  $len d_long, s_line
	  dift d_long < 16
		$tod d_9part, s_line
		dinc d_good
	  endi
    endi
'123456789012345678901234567
'123,456,789,012,345,678,901
'123456789012345678901

    dift d_good = 1
	  'make 21 long
	  $ch$ s_any, "0", 30
	  s_line = s_any + s_line
	  $off s_line, s_line, 21

	  $cut s_beg, s_line, 1, 6
	  $tod d_beg, s_beg

	  d_9mult = d_beg \ 9
	  d_beg = d_beg % 9

	  $cut s_any, s_line, 7, 99
	  s_any = d_beg + s_any
	  $tod d_9part, s_any
    endi

    dg_pass1 = d_9part
    dg_pass2 = d_9mult
ends sub_9quad_from_string


subr sub_teaquad_to_string
'updated 2007/03/30, 2007/02/24, 2006/11/25, 2006/11/12, 2006/10/27
'change a teaquad number in d_teaquadpart,d_teaquadmult to a string
    vari d_any, s_any, d_dot, s_dot
    vari d_teaquadpart, d_teaquadmult, s_line
    vari s_beg, d_beg

    d_teaquadpart = dg_pass1
    d_teaquadmult = dg_pass2

    dift d_teaquadpart < 0
	  dpow d_any, 10 ,15
	  d_teaquadpart = d_teaquadpart + d_any
	  ddec d_teaquadmult	
    endi

'123456789012345678901234567
'123,456,789,012,345,678,901
'123456789012345678901
    dto$ s_line, d_teaquadpart, 0, 0
    $ch$ s_any, "0", 30
    s_line = s_any + s_line
    $off s_line, s_line, 21

    $cut s_beg, s_line, 1, 6
    $tod d_beg, s_beg
    d_beg = d_teaquadmult + d_beg
    $ch$ s_any, "0", 6
    s_beg = s_any + d_beg
    $off s_beg, s_beg, 6
    $rep s_line, 1, s_beg

    'put in commas in 21 digit number
    $ins s_line, 4, ","
    $ins s_line, 8, ","
    $ins s_line, 12, ","
    $ins s_line, 16, ","
    $ins s_line, 20, ","
    $ins s_line, 24, ","

    'take off leading zeros and commas
    d_dot = 1
    dwhi d_dot = 1
	  dinc d_dot
	  $cut s_any, s_line, 1, 1
	  $ift s_any = "0"
		$cut s_line, s_line, 2, 99
		d_dot = 1
	  endi
	  $ift s_any = ","
		$cut s_line, s_line, 2, 99
		d_dot = 1
	  endi
    endw

    sg_pass1 = s_line
ends sub_teaquad_to_string


subr sub_teaquad_from_string
'updated 2007/02/24, 2006/11/25, 2006/11/12, 2006/10/28
'teaquad string to d_teaquadpart,d_teaquadmult
'1part is the 15 digits on the right,1mult is the left digits
    vari d_any, s_any, d_dot, s_dot
    vari d_teaquadpart, d_teaquadmult
    vari s_line, d_good, d_long, s_beg, d_beg

    s_line = sg_pass1
    d_teaquadpart = 0
    d_teaquadmult = 0
'123456789012345678901234567
'123,456,789,012,345,678,901
'123456789012345678901

    d_good = 1
    dift d_good = 1
	  'eliminate commas and validate for all numbers
	  $trb s_line, s_line
	  $swp s_line, ",", sg_nothing
	  $ist d_any, s_line, "9"
	  dift d_any <> 1: dinc d_good
    endi
'123456789012345678901234567
'123,456,789,012,345,678,901
'123456789012345678901

    dift d_good = 1
	  'make 21 long
	  $ch$ s_any, "0", 30
	  s_line = s_any + s_line
	  $off s_line, s_line, 21

	  $cut s_beg, s_line, 1, 6
	  $tod d_teaquadmult, s_beg

	  $cut s_any, s_line, 7, 99
	  $tod d_teaquadpart, s_any
    endi

    dg_pass1 = d_teaquadpart
    dg_pass2 = d_teaquadmult
ends sub_teaquad_from_string


subr sub_teaquad_shift
'updated 2007/02/24
'shift teaquad by correcting d_teaquadpart,d_teaquadmult
    vari d_any, s_any, d_dot, s_dot
    vari d_teaquadpart, d_teaquadmult

    d_teaquadpart = dg_pass1
    d_teaquadmult = dg_pass2

    dpow d_dot, 10, 15
    dift d_teaquadpart > d_dot
	  d_any = d_teaquadpart \ d_dot
	  d_teaquadmult = d_teaquadmult + d_any
	  d_teaquadpart = d_teaquadpart - d_any
    endi

    dg_pass1 = d_teaquadpart
    dg_pass2 = d_teaquadmult
ends sub_teaquad_shift


subr sub_teaquad_from_primes31
'updated 2007/08/30
    vari d_any, s_any, d_dot, s_dot, d_factor, d_debug
    vari d_teaquadpart, d_teaquadmult, d_teaquadone
    vari d_primes31part, d_primes31mult

    'N = 200,560,490,130 * d_primes31mult + d_primes31part
    'max for d_primes31part is 200,560,490,130
    'max for d_primes31mult is 1E7
    d_primes31part = dg_pass1
    d_primes31mult = dg_pass2

    d_debug = 2
    d_teaquadpart = 0
    d_teaquadmult = 0
    d_teaquadone = 10 ^ 15

    '560,490,130
    d_teaquadpart = 560490130 * d_primes31mult + d_primes31part

    dift d_debug = 1
	  ded$ s_any, d_teaquadpart, 0, 0
	  $out "A=" + s_any
    endi

    'any of d_teaquadpart over 1E15 goes into d_teaquadmult
    d_factor = 10 ^ 15
    d_any = d_teaquadpart \ d_factor
    d_teaquadmult = d_any

    dift d_debug = 1
	  ded$ s_any, d_teaquadmult, 0, 0
	  $out "B=" + s_any
    endi

    d_teaquadpart = d_teaquadpart % d_factor

    dift d_debug = 1
	  ded$ s_any, d_teaquadpart, 0, 0
	  $out "C=" + s_any
    endi

    'now get the biggest part without multiplying by 1E9
    d_dot = 200 * d_primes31mult

    dift d_debug = 1
	  ded$ s_any, d_dot, 0, 0
	  $out "D=" + s_any
    endi

    'any of d_dot over 1E6 goes to d_teaquadmult
    d_factor = 10 ^ 6
    d_any = d_dot \ d_factor

    dift d_debug = 1
	  ded$ s_any, d_any, 0, 0
	  $out "E=" + s_any
    endi

    d_teaquadmult = d_teaquadmult + d_any

    dift d_debug = 1
	  ded$ s_any, d_teaquadmult, 0, 0
	  $out "F=" + s_any
    endi

    d_dot = d_dot % d_factor

    'multiply it by 1E9 and add to d_teaquadpart
    d_dot = 10 ^ 9 * d_dot
    d_teaquadpart = d_teaquadpart + d_dot

    dift d_debug = 1
	  ded$ s_any, d_teaquadpart, 0, 0
	  $out "G=" + s_any
    endi

    dg_pass1 = d_teaquadpart
    dg_pass2 = d_teaquadmult
    sub_teaquad_to_string
    $out sg_pass1
ends sub_teaquad_from_primes31


subr sub_file_primes31_to_teaquad
'updated 2007/08/30
'translate file of primes31 to teaquad
'file format from 
'noted prime number researcher Jens Kruse Andersen
    vari d_any, s_any, d_dot, s_dot
    vari s_filein, s_fileout, d_filebyte, s_record
    vari d_process, d_good, d_loop, d_count
    vari d_primes31part, d_primes31mult
  
    d_process = 1
    dift d_process = 1
	  $inp s_filein, "input filename"
	  $ift s_filein = "*": dinc d_process
    endi
    dift d_process = 1
	  $inp s_fileout, "output filename"
	  $ift s_fileout = "*": dinc d_process
    endi

    d_filebyte = 1
    d_loop = d_process
    dwhi d_loop = 1
	  d_good = 1
	  fsip s_record, s_filein, d_filebyte

	  dift d_filebyte = 0
		dinc d_good
		dinc d_loop
	  endi
	  dift d_good = 1
		'must have "10*0+" for a good record
		$lok d_dot, s_record, 1, "10*0+"
		dift d_dot = 0: dinc d_good
	  endi
	  dift d_good = 1
		d_primes31part = 0
		d_primes31mult = 0

		d_dot = d_dot + 5
		$cut s_record, s_record, d_dot, 999
		$trb s_record, s_record
		$lok d_dot, s_record, 1, " "

		$cut s_dot, s_record, 1, d_dot
		$trb s_dot, s_dot
		$isd d_any, s_dot
		dift d_any = 1: $tod d_primes31mult, s_dot
		
		$cut s_dot, s_record, d_dot, 999
		$trb s_dot, s_dot
		$isd d_any, s_dot
		dift d_any = 1: $tod d_primes31part, s_dot
	  endi
	  dift d_good = 1
		dg_pass1 = d_primes31part
		dg_pass2 = d_primes31mult
		sub_teaquad_from_primes31
		s_record = sg_pass1

		fapp d_any, s_fileout, s_record
		dbad d_any = 0

		dinc d_count
	  endi
    endw

    $inp s_any, "count=" + d_count
ends sub_file_primes31_to_teaquad


subr sub_test_primes31_to_teaquad
'updated 2007/08/30
    vari d_any, s_any, d_dot, s_dot
    vari s_input, d_loop, d_good
    vari d_primes31part, d_primes31mult

    d_loop = 1
    dwhi d_loop = 1
	  d_good = 1
	  dift d_good = 1
	      $inp s_input, "enter primes31mult=x"
		$ift s_input = "*": dinc d_good
		$isd d_any, s_input
		dift d_any = 1: $tod d_primes31mult, s_input
	  endi  
	  dift d_good = 1
	      $inp s_input, "enter primes31part=y"
		$ift s_input = "*": dinc d_good
		$isd d_any, s_input
		dift d_any = 1: $tod d_primes31part, s_input
	  endi  
	  dift d_good = 1
		dg_pass1 = d_primes31part
		dg_pass2 = d_primes31mult
		sub_teaquad_from_primes31
	  endi

	  d_loop = d_good
    endw
ends sub_test_primes31_to_teaquad


subr sub_teaquad_mod_test
'updated 2008/11/04, 2007/04/01
'2007/03/27, 2007/03/03, 2007/03/02, 2007/02/27, 2007/02/26
'test teaquad and 9quad mod
    vari d_any, s_any, d_dot, s_dot
    vari d_tqdpart, d_tqdmult
    vari s_2to53, d_2to53, d_tqdone
    vari d_process, d_number, d_root
    vari d_mod1, d_mod2, d_mod3, d_mod4, d_mod5, d_mod6
    vari s_dashline, s_err

    $ch$ s_dashline, "-", 70
    s_err = "number too big"
    dpow d_2to53, 2, 53
    ded$ s_2to53, d_2to53, 0, 0
    s_err = "number bigger than=" + s_2to53
    dpow d_tqdone, 10, 15

    d_process = 1
    dift d_process = 1
	  $out "we use tqd to mean teaquad below"
	  $inp s_any, "enter d_tqdpart"
	  $ift s_any = "*": dinc d_process
	  $isd d_any, s_any
	  d_tqdpart = 1
	  dift d_any = 1: $tod d_tqdpart, s_any
    endi    
    dift d_process = 1
	  $inp s_any, "enter d_tqdmult"
	  $ift s_any = "*": dinc d_process
	  $isd d_any, s_any
	  d_tqdmult = 1
	  dift d_any = 1: $tod d_tqdmult, s_any
    endi    
    dift d_process = 1
	  d_number = d_tqdone * d_tqdmult + d_tqdpart
	  dpow d_root, d_number, 0.5
	  dtru d_root, d_root

	  $out s_dashline
	  ded$ s_any, d_2to53, 0, 0
	  $out "d_2to53=" + s_any

	  $out s_dashline
	  ded$ s_any, d_tqdone, 0, 0
	  $out "d_tqdone=" + s_any

	  $out s_dashline
	  $out "we are using tqd to mean teaquad below:"
	  $out "the tqd algorithm in C90 briefly is as follows:"

	  s_any = "d_mod = fmod(d_tqdpart + d_tqdmult * "
	  $app s_any, "fmod(d_tqdone, d_div), d_div);"
	  $out s_any

	  $out s_dashline
	  ded$ s_any, d_tqdpart, 0, 0
	  $out "d_tqdpart=" + s_any

	  $out s_dashline
	  ded$ s_any, d_tqdmult, 0, 0
	  $out "d_tqdmult=" + s_any

	  $out s_dashline
	  ded$ s_any, d_number, 0, 0
	  $out "d_number=" + s_any

	  $out s_dashline
	  ded$ s_any, d_root, 0, 0
	  d_dot = d_root * d_root
	  ded$ s_dot, d_dot, 0, 0
	  $out "d_root=" + s_any + " squared=" + s_dot
    endi
    dift d_process = 1
	  d_mod1 = d_tqdpart
	  d_mod2 = d_tqdone % d_root
	  d_mod3 = d_mod2 * d_tqdmult
	  d_mod4 = d_mod1 + d_mod3
	  d_mod5 = d_mod4 % d_root
	  d_mod6 = d_tqdmult * d_root + d_tqdone

	  $out s_dashline
	  d_mod1 = d_tqdpart
	  ded$ s_any, d_tqdpart, 0, 0
	  $out "d_tqdpart=" + s_any
	  dift d_mod1 > d_2to53: $out s_err

	  $out s_dashline
	  d_mod2 = d_tqdone % d_root
	  ded$ s_any, d_mod2, 0, 0
	  $out "d_tqdone % d_root=" + s_any
	  dift d_mod2 > d_2to53: $out s_err

	  $out s_dashline
	  d_mod3 = d_mod2 * d_tqdmult
	  ded$ s_any, d_mod3, 0, 0
	  $out "d_tqdmult * (d_tqdone % d_root)=" + s_any
	  dift d_mod3 > d_2to53: $out s_err

	  $out s_dashline
	  d_mod4 = d_mod1 + d_mod3
	  ded$ s_any, d_mod4, 0, 0
	  $out "d_tqdpart + d_tqdmult * (d_tqdone % d_root)=" + s_any
	  dift d_mod4 > d_2to53: $out s_err

	  $out s_dashline
	  d_mod5 = d_mod4 % d_root
	  ded$ s_any, d_mod5, 0, 0
	  s_dot = "(d_tqdpart + d_tqdmult * "
	  $app s_dot, "(d_tqdone % d_root)) % d_root=" + s_any
	  $out s_dot
	  dift d_mod5 > d_2to53: $out s_err

	  $out s_dashline
	  d_mod6 = d_tqdmult * d_root + d_tqdone
	  $out "d_max = d_root * d_tqdmult + d_tqdone"
	  ded$ s_any, d_mod6, 0, 0
	  $out "d_max=" + s_any
	  dift d_mod6 > d_2to53: $out s_err
    endi

    $inp s_any, "done"
ends sub_teaquad_mod_test


subr sub_teaquad_5tp39_analyze_an_a_file
'updated 2008/04/07
    vari d_any, s_any, d_dot, s_dot
    vari d_filebyte, s_record, s_prevrecord, s_inputfile
    vari d_process, d_loop, d_good
    vari s_hour, d_hour, d_prevhour

    d_process = 1
    dift d_process = 1
        $inp s_inputfile, "enter input file ie. a5tp39x3.txt"
	  $ift s_inputfile = "*": dinc d_process
    endi
    d_filebyte = 1
    d_loop = d_process
    dwhi d_loop = 1
	  d_good = 1
	  fsip s_record, s_inputfile, d_filebyte
	  dift d_filebyte = 0
		dinc d_loop
		dinc d_good
	  endi
	  dift d_good = 1
		$cut s_any, s_record, 1, 1
		$ist d_any, s_any, "9"
		dift d_any <> 1: dinc d_good

		$lok d_dot, s_record, 1, ":"
		dift d_dot < 3: dinc d_good
	  endi
	  dift d_good = 1
		d_dot = d_dot - 2
		$cut s_hour, s_record, d_dot, 2
		$ist d_any, s_hour, "9"
		dift d_any <> 1: dinc d_good
	  endi
	  dift d_good = 1
		$tod d_hour, s_hour
		d_any = d_prevhour + 1
		dift d_any = 24: d_any = 0
		dift d_any <> d_hour
		    $out s_prevrecord
		    $out s_record
		    $inp s_any, "not right"
		    $ift s_any = "*": dinc d_loop
		endi
		d_prevhour = d_hour
		s_prevrecord = s_record
	  endi
    endw

ends sub_teaquad_5tp39_analyze_an_a_file


subr sub_test_for_pnq30
'updated 2002/12/08
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_loop, d_quadprime, d_factor
    vari d_good, d_number, s_number, d_count

    d_loop = 1
    dwhi d_loop = 1
	  s_out = "enter the first number or the PIVCOM of a PNQ30"
	  $inp s_number, s_out
	  $isd d_any, s_number

	  dift d_any <> 1
		dinc d_loop
	  else
	      $tod d_number, s_number
		dfac d_any, d_number
		dift d_any = 2: d_number = d_number - 19

		dg_pass1 = d_number
		sub_pnq30_testshow
	  endi
    endw
ends sub_test_for_pnq30


subr sub_pnq30_testshow
'updated 2002/12/08
    vari d_any, s_any, d_dot, s_dot
    vari d_quadprime, d_factor, d_pivcom, d_hastwinpivcom
    vari d_good, d_number, s_number, d_count

    d_quadprime = dg_pass1
    d_hastwinpivcom = 2
    d_count = 0
    d_good = 1

    dift d_good = 1
        d_number = d_quadprime
        dfac d_factor, d_number
        dift d_factor = 1
	      dinc d_count
		ded$ s_number, d_number, 20, 0
		$out d_count + ". prime=" + s_number
        else
	      dinc d_good
        endi
    endi	  
    dift d_good = 1
        d_number = d_quadprime + 2
        dfac d_factor, d_number
        dift d_factor = 1
	      dinc d_count
		ded$ s_number, d_number, 20, 0
		$out d_count + ". prime=" + s_number
        else
	      dinc d_good
        endi
    endi	  
    dift d_good = 1
        d_number = d_quadprime + 6
        dfac d_factor, d_number
        dift d_factor = 1
	      dinc d_count
		ded$ s_number, d_number, 20, 0
		$out d_count + ". prime=" + s_number
        else
	      dinc d_good
        endi
    endi	  
    dift d_good = 1
        d_number = d_quadprime + 8
        dfac d_factor, d_number
        dift d_factor = 1
	      dinc d_count
		ded$ s_number, d_number, 20, 0
		$out d_count + ". prime=" + s_number
        else
	      dinc d_good
        endi
    endi	  
    dift d_good = 1
        d_number = d_quadprime + 30
        dfac d_factor, d_number
        dift d_factor = 1
	      dinc d_count
		ded$ s_number, d_number, 20, 0
		$out d_count + ". prime=" + s_number
        else
	      dinc d_good
        endi
    endi	  
    dift d_good = 1
        d_number = d_quadprime + 32
        dfac d_factor, d_number
        dift d_factor = 1
	      dinc d_count
		ded$ s_number, d_number, 20, 0
		$out d_count + ". prime=" + s_number
        else
	      dinc d_good
        endi
    endi	  
    dift d_good = 1
        d_number = d_quadprime + 36
        dfac d_factor, d_number
        dift d_factor = 1
	      dinc d_count
		ded$ s_number, d_number, 20, 0
		$out d_count + ". prime=" + s_number
        else
	      dinc d_good
        endi
    endi	  
    dift d_good = 1
        d_number = d_quadprime + 38
        dfac d_factor, d_number
        dift d_factor = 1
	      dinc d_count
		ded$ s_number, d_number, 20, 0
		$out d_count + ". prime=" + s_number
        else
	      dinc d_good
        endi
    endi	  
    dift d_good = 1
        'test for the twin pivcom
	  'pivcom was coined by Roger Hargrave in 2002
        d_pivcom = d_quadprime + 19
	  d_number = d_pivcom - 1
	  dfac d_factor, d_number
        dift d_factor = 1
		d_number = d_pivcom + 1
		dfac d_factor, d_number
		dift d_factor = 1
		    ded$ s_any, d_pivcom, 0, 0
		    d_hastwinpivcom = 1
		    $out "pivcom is twin prime pivcom = " + s_any
		endi
        endi
    endi

    dg_pass1 = d_good
    dg_pass2 = d_hastwinpivcom
ends sub_pnq30_testshow


subr sub_pnq30_test_quiet
'updated 2002/11/30
    vari d_any, s_any, d_dot, s_dot
    vari d_pnq30, d_factor
    vari d_good, d_number

    d_pnq30 = dg_pass1
    d_good = 1

    dift d_good = 1
        d_number = d_pnq30
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		dto$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_pnq30 + 2
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		dto$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_pnq30 + 6
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		dto$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_pnq30 + 8
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		dto$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_pnq30 + 30
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		dto$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_pnq30 + 32
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		dto$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_pnq30 + 36
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		dto$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_pnq30 + 38
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		dto$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dg_pass1 = d_good
ends sub_pnq30_test_quiet


subr sub_pnq30_file_test
'updated 2003/05/24
    vari d_any, s_any, d_dot, s_dot, s_out
    vari s_filename, s_filedata, d_loop, d_big, d_error
    vari s_number, d_number, d_count, d_byte, d_long, d_process
    vari s_previous, d_previous, d_time1, d_time2
    vari s_diff, d_diff, d_mindiff, d_atmindiff
    vari d_onlypnq30, d_yestestfromgaps, d_quietpnq30
    vari d_pivcom, d_ctadd1pivcom, d_ctsub1pivcom
    vari s_line, d_twinct, d_testtwin
    vari d_yestestsmallgaps, d_yestestlargegaps, d_testctpivcom
    vari d_index, d_gcd, d_good, d_begnumber

    d_process = 1
    dift d_process = 1
        $inp s_filename, "enter name of the file or FIXPRIME.EXP"
	  $ift s_filename = "*": dinc d_process
    endi
    dift d_process = 1
        $trb s_filename, s_filename
        $len d_any, s_filename
        dift d_any = 0: s_filename = "FIXPRIME.EXP"
        finp s_filedata, s_filename
	  $bes s_filedata, s_filedata
    endi
    dift d_process = 1
        d_testtwin = 2
        $inp s_any, "1 = check for twin pivcoms"
	  $ift s_any = "*": dinc d_process
        $ift s_any = "1": d_testtwin = 1
    endi
    dift d_process = 1
        d_yestestsmallgaps = 2
        $inp s_any, "1 = test for small gaps"
        $ift s_any = "1": d_yestestsmallgaps = 1
	  $ift s_any = "*": dinc d_process
    endi
    dift d_process = 1
        d_yestestlargegaps = 2
        $inp s_any, "1 = test for large gaps"
        $ift s_any = "1": d_yestestlargegaps = 1
	  $ift s_any = "*": dinc d_process
    endi
    dift d_process = 1
	  d_onlypnq30 = 2
	  $inp s_any, "1 = test only PNQ30s"
	  $ift s_any = "1": d_onlypnq30 = 1
	  $ift s_any = "*": dinc d_process
    endi
    dift d_process = 1
	  d_quietpnq30 = 2
	  $inp s_any, "1 = quiet pnq30"
	  $ift s_any = "1": d_quietpnq30 = 1
	  $ift s_any = "*": dinc d_process
    endi
    dift d_process = 1
	  d_yestestfromgaps = 2
	  $inp s_any, "1 = test from gaps"
	  $ift s_any = "1": d_yestestfromgaps = 1
	  $ift s_any = "*": dinc d_process 
    endi
    dift d_process = 1
	  d_testctpivcom = 2
	  $inp s_any, "1 = test ctpivcom"
	  $ift s_any = "1": d_testctpivcom = 1
	  $ift s_any = "*": dinc d_process
    endi
    dift d_process = 1
	  d_begnumber = 0
	  $inp s_any, "minimum number to begin with, default 0"
	  $isd d_any, s_any
	  dift d_any = 1: $tod d_begnumber, s_any
	  $ift s_any = "*": dinc d_process
    endi
    dift d_process = 1
        $len d_long, s_filedata
        $out "length=" + d_long
	  dift d_long < 1: dinc d_process
    endi
    dift d_process = 1	  
	  dsec d_time1

	  dift d_onlypnq30 <> 1
	      'test PNQ30: to see if correct
	      sg_pass1 = s_filedata
	      sub_pnq30_string_test
	  endi
	  
	  d_ctadd1pivcom = 0
	  d_ctsub1pivcom = 0
        d_index = 1
        dpow d_mindiff, 10, 15
        d_previous = 0
        d_atmindiff = 0
        d_twinct = 0

    endi
    dift d_process = 1

	  d_count = 0
	  dpow d_big, 10, 9
	  $cup s_filedata, s_filedata

	  d_loop = 1
	  dwhi d_loop = 1

		d_good = 1
		$lok d_byte, s_filedata, 1, "PNQ30="

		dift d_byte = 0
		    dinc d_loop
		    dinc d_good
		endi
		dift d_good = 1
		    'get the line to output below
		    $cut s_line, s_filedata, d_byte, 70
		    
		    d_byte = d_byte + 6

		    'eliminate the 'PNQ30='
		    $cut s_filedata, s_filedata, d_byte, d_big
		    $trb s_filedata, s_filedata

		    'find the blank at the end of the number
		    $lok d_byte, s_filedata, 1, " "

		    'get the number into a string
		    $cut s_number, s_filedata, 1, d_byte

		    'prep the string for next look
		    $cut s_filedata, s_filedata, d_byte, d_big

		    'do we have a number
		    $trb s_number, s_number
		    $isd d_good, s_number
		endi
		dift d_good = 1
		    'we have a number
		    $tod d_number, s_number
		    'it cannot be smaller than d_begnumber
		    dift d_number < d_begnumber: dinc d_good
		endi
		dift d_good = 1
		    ded$ s_number, d_number, 0, 0
		    $out s_number

		    dift d_quietpnq30 = 1
			  dg_pass1 = d_number
			  sub_pnq30_test_quiet
			  d_good = dg_pass1
			  dift d_good <> 1
				$out "not PNQ30=" + s_number
				$inp s_any, "return"
			  endi
		    else
		        dg_pass1 = d_number
		        sub_pnq30_testshow
		        d_good = dg_pass1
			  dift d_good <> 1
				$out "not PNQ30=" + s_number
				$inp s_any, "return"
			  endi
		    endi
		endi
		dift d_good = 1
		    dinc d_count
		    $out d_count + ":PNQ30=" + s_number

		    dift d_testctpivcom = 1
			  'test to see if TWIN PIVCOM
		        dg_pass1 = d_number
		        sub_test_ctpivcom
		    endi

		    dift d_yestestfromgaps = 1
		        'what about the gap to the previous prime
		        dg_pass1 = d_number 
		        dg_pass2 = -2
		        sub_find_next_prime

		        'what about the gap to the next prime
		        dg_pass1 = d_number + 38
		        dg_pass2 = 2
		        sub_find_next_prime
		    endi

		    'pivcom was coined by Roger Hargrave in 2002
		    'pivcom = pivotal composite = d_number + 19
		    d_pivcom = d_number + 19

		    'is the pivcom the pivcom of a twin prime set
		    d_dot = d_pivcom - 1
		    dfac d_any, d_dot

		    'how many pivcom sub 1 are prime
		    dift d_any = 1: dinc d_ctsub1pivcom

		    d_dot = d_pivcom + 1
		    dfac d_dot, d_dot

		    'how many pivcom add 1 are prime
		    dift d_dot = 1: dinc d_ctadd1pivcom

		    d_dot = d_any + d_dot
		    dift d_dot = 2
			  'we have a twin pivcom
			  dinc d_twinct
			  $out s_line
			  s_out = d_twinct + ". TWIN PIVCOM at PNQ30="
			  $app s_out, s_number

			  dift d_testtwin = 1
			      $lok d_any, s_line, 1, "PIVCOM"
			      dift d_any = 0: $inp s_any, s_out
			  else
				$out s_out
			  endi
		    else
			  'we do not have a twin pivcom
			  $lok d_any, s_line, 1, "PIVCOM"
			  dift d_any > 0
				$out s_number
				$inp s_any, "not TWIN PIVCOM but marked as one"
			  endi
		    endi

		    'find difference from the previous PNQ30
		    d_diff = d_number - d_previous
		    ded$ s_diff, d_diff, 0, 0

		    dift d_diff < d_mindiff
			  d_mindiff = d_diff
			  d_atmindiff = d_previous
		    endi

		    dift d_diff < 1000
			  ded$ s_any, d_previous, 0, 0
			  $out s_any
			  ded$ s_any, d_number, 0, 0
			  $out s_any
			  $out s_diff
			  $inp s_any, "difference too small"
		    endi

		    d_any = d_diff / 210
		    d_dot = d_diff \ 210
		    dift d_any <> d_dot
			  ded$ s_any, d_any, 0, 0
			  $out "d_diff / 210=" + s_any

			  ded$ s_dot, d_dot, 0, 0
			  $out "d_diff \ 210=" + s_dot

			  $inp s_any, "bad divide by 210"
		    endi

		    'output differences
		    s_out = "diff=" + s_diff 
		    ded$ s_any, d_mindiff, 0, 0
		    $app s_out, ", mindiff=" + s_any
		    ded$ s_any, d_atmindiff, 0, 0
		    $app s_out, ", min at=" + s_any
		    $out s_out

		    dift d_yestestlargegaps = 1
			  'test for a large gap
			  dpow d_any, 10, 10
			  dift d_diff >= d_any
			     s_out = "large gap=" + s_diff + " at "
			     $app s_out, s_previous + " & " + s_number
			     $inp s_any, s_out
			  endi
		    endi
		    dift d_yestestsmallgaps = 1
			  'test for a small gap
			  dpow d_any, 10, 6
			  dift d_diff <= d_any
			     s_out = "small gap=" + s_diff + " at "
			     $app s_out, s_previous + " & " + s_number
			     $inp s_any, s_out
			  endi
		    endi

		    d_previous = d_number
		    s_previous = s_number
		endi
	  endw
    endi

    ded$ s_any, d_ctsub1pivcom, 0, 0
    $out "prime count of pivcom - 1 = " + s_any

    ded$ s_any, d_ctadd1pivcom, 0, 0
    $out "prime count of pivcom + 1 = " + s_any

    ded$ s_any, d_count, 0, 0
    $out "PNQ30 count=" + s_any

    dsec d_time2
    d_any = d_time2 - d_time1
    ded$ s_any, d_any, 0, 0
    $out "seconds=" + s_any

    $inp s_any, "done"
ends sub_pnq30_file_test


subr sub_test_ctpivcom
'updated 2003/01/26
'test ctpivcom for mod of 11, 13, 17, 19
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_pnq30, s_pnq30, d_ctpivcom, s_ctpivcom

    d_pnq30 = dg_pass1
    ded$ s_pnq30, d_pnq30, 0, 0
 
    d_ctpivcom = d_pnq30 + 19 \ 210
    ded$ s_ctpivcom, d_ctpivcom, 0, 0

    dfac d_any, d_ctpivcom
    ded$ s_any, d_any, 0, 0

    s_out = "pnq30=" + s_pnq30
    $app s_out, " ctpivcom=" + s_ctpivcom
    $app s_out, " divisor=" + s_any
    $out s_out

    d_any = d_ctpivcom % 11
    s_out = "%11=" + d_any
    d_any = d_ctpivcom % 13
    $app s_out, ", %13=" + d_any
    d_any = d_ctpivcom % 17
    $app s_out, ", %17=" + d_any
    d_any = d_ctpivcom % 19
    $app s_out, ", %19=" + d_any
    $inp s_any, s_out   
ends sub_test_ctpivcom


subr sub_pnq30_string_test
'updated 2002/01/26
'test PNQ30: to see if correct
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_loop, d_number, s_number, s_string
    vari d_byte, d_count, d_previous
    vari d_diff, s_diff, d_maxdiff, s_max
    
    s_string = sg_pass1
    sg_pass1 = sg_nothing
    $cup s_string, s_string

    'look for PNQ30:
    d_count = 0
    d_byte = 1
    d_loop = 1

    dwhi d_loop = 1
	  $lok d_byte, s_string, d_byte, "PNQ30: "

	  dift d_byte = 0
		$out "PNQ30: count=" + d_count
		dinc d_loop
	  else
		d_dot = d_byte + 7
		$cut s_dot, s_string, d_dot, 30
		$trb s_dot, s_dot

		$lok d_any, s_dot, 1, " "
		$cut s_number, s_dot, 1, d_any
		$trb s_number, s_number

		$isd d_any, s_number
		dift d_any = 1
		    dinc d_count
		    $tod d_number, s_number

		    'test to see if pnq30
		    dg_pass1 = d_number
		    sub_pnq30_testshow
		    d_any = dg_pass1

		    dift d_any = 1
			  $out "PNQ30: " + s_number
		    else
			  s_out = "not PNQ30=" + s_number
			  $inp s_any, s_out
		    endi
		else
		    $out "bad number=" + s_number
		endi
	  endi

	  dinc d_byte
    endw
    $inp s_any, "PNQ30: tested, count=" + d_count
ends sub_pnq30_string_test


subr sub_find_next_prime
'updated 2003/02/02
'find the next prime number after dg_pass1 
'in direction of dg_pass2
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_loop, d_begnumber, d_testnumber
    vari d_divisor, d_prime, d_gap, d_delta

    'get the beginning number and the delta
    d_begnumber = dg_pass1
    d_delta = dg_pass2
    'd_delta can be +2 or -2

    d_testnumber = d_begnumber + d_delta
    d_prime = 1
    d_loop = 1

    dwhi d_loop = 1
	  dfac d_divisor, d_testnumber

	  dift d_divisor = 1
		d_prime = d_testnumber
		dinc d_loop
	  else
		d_testnumber = d_testnumber + d_delta
	  endi
    endw

    ded$ s_any, d_begnumber, 0, 0
    ded$ s_dot, d_prime, 0, 0
    s_out = "begin=" + s_any + ", next prime=" + s_dot

    d_gap = d_prime - d_begnumber
    ded$ s_any, d_gap, 0, 0
    $app s_out, ", gap=" + s_any

    $out s_out

    'stop if absolute value of gap is large
    dabs d_any, d_gap
    dift d_any >= 200: $inp s_any, "gap to next prime"

    dg_pass1 = d_gap
ends sub_find_next_prime


subr sub_5tp39_teaquad_next_primes
'updated 2010/06/23, 2004/02/22
    vari d_any, s_any, d_dot, s_dot, s_out
    vari s_filename, s_filedata, s_line, d_loop, d_big, d_good
    vari d_nextct, d_lines
    vari s_number, d_count, d_byte, d_long, d_process
    vari d_teaquadpart, d_teaquadmult
    vari d_factor, d_mult, d_part, d_delta, s_deltas

    d_process = 1
    dift d_process = 1
	  d_nextct = 5
	  $inp s_any, "enter count of next primes"
	  $isd d_any, s_any
	  dift d_any = 1: $tod d_nextct, s_any
    endi
    dift d_process = 1
        $inp s_filename, "enter name of the file or fix5tp39.exp"
	  $ift s_filename = "*": dinc d_process
    endi
    dift d_process = 1
	  'get the file into s_filedata
        $trb s_filename, s_filename
        $len d_any, s_filename
        dift d_any = 0: s_filename = "fix5tp39.exp"
        finp s_filedata, s_filename
	  $bes s_filedata, s_filedata
	  $cup s_filedata, s_filedata
    endi
    dift d_process = 1
        $len d_long, s_filedata
        $out "length=" + d_long
	  dift d_long < 1: dinc d_process
    endi
    d_big = 10 ^ 9
    d_count = 0

    d_loop = d_process
    dwhi d_loop = 1

  	  d_good = 1
	  $lok d_byte, s_filedata, 1, "5TP39="

	  dift d_byte = 0
	      dinc d_loop
	      dinc d_good
	  endi
	  dift d_good = 1
	      'get the line to output below
	      $cut s_line, s_filedata, d_byte, 60
		    
            d_byte = d_byte + 6
  
	      'eliminate the '5TP39='
	      $cut s_filedata, s_filedata, d_byte, d_big
	      $trb s_filedata, s_filedata

	      'find the blank at the end of the number
	      $lok d_byte, s_filedata, 1, " "

	      'get the number into a string
	      $cut s_number, s_filedata, 1, d_byte

	      'prep the string for next look
	      $cut s_filedata, s_filedata, d_byte, d_big

	      'do we have a number
	      $trb s_number, s_number
	      sg_pass1 = s_number
	      sub_teaquad_from_string
	      d_teaquadpart = dg_pass1
	      d_teaquadmult = dg_pass2
	  endi
	  dift d_good = 1
		d_mult = d_teaquadmult
		d_part = d_teaquadpart

		s_deltas = sg_nothing
		d_delta = 0
		d_count = 0
		dwhi d_count < d_nextct
		    d_delta = d_delta + 2
		    d_part = d_teaquadpart + 38 + d_delta
		    dfak d_factor, d_part, d_mult

		    dift d_factor = 1
			  $app s_deltas, d_delta + "," 
			  dinc d_count
		    endi
		endw
		$out s_number + " " + s_deltas
		dinc d_lines
		dift d_lines > 20
		    d_lines = 0
		    $inp s_any, "more"
		    $ift s_any = "*": dinc d_loop
		endi
        endi
    endw

    $inp s_any, "done"
ends sub_5tp39_teaquad_next_primes


subr sub_teaquad_5tp39_teapro_loop
'updated 2007/12/08, 2007/12/07, 2007/12/06, 2007/12/05
    vari d_any, s_any, d_dot, s_dot
    vari d_teaquadpart, d_teaquadmult, d_teaquadone
    vari s_number, d_factor
    vari d_loop, d_good, d_sec1, d_sec2, d_sec3

    d_teaquadmult = 0
    d_teaquadpart = 101

    d_loop = 1
    dwhi d_loop = 1
	  d_good = 1
	  dift d_good = 1
		$out "1= 10,352,983,611,791"
		$out "2= 100,749,831,367,481"
		$out "3= 1,000,946,235,399,161"
		$out "4= 10,011,767,333,774,411"
		$out "5= 100,008,118,644,774,251"
		$out "6= 1,000,012,759,669,197,941"
	      $inp s_any, "enter number"
	      $ift s_any = "*": dinc d_good
		$ift s_any = "1": s_any = "10,352,983,611,791"
		$ift s_any = "2": s_any = "100,749,831,367,481"
		$ift s_any = "3": s_any = "1,000,946,235,399,161"		
		$ift s_any = "4": s_any = "10,011,767,333,774,411"
		$ift s_any = "5": s_any = "100,008,118,644,774,251"
		$ift s_any = "6": s_any = "1,000,012,759,669,197,941"
	  endi
	  dift d_good = 1
		s_number = s_any
		$out "number=" + s_number
	  endi
	  dift d_good = 1
	      sg_pass1 = s_number
	      sub_teaquad_from_string
	      d_teaquadpart = dg_pass1
	      d_teaquadmult = dg_pass2
		s_any = "teaquadmult=" + d_teaquadmult
		$app s_any, " teaquadpart=" + d_teaquadpart
		$out s_any
	  endi
	  dift d_good = 1
		'use DFAK
		dg_pass1 = d_teaquadpart
		dg_pass2 = d_teaquadmult
		dsec d_sec1
		dfak d_factor, d_teaquadpart, d_teaquadmult
		dsec d_sec2

		d_sec3 = d_sec2 - d_sec1
		$out "DFAK factor=" + d_factor + " sec=" + d_sec3

		dg_pass1 = d_teaquadpart
		dg_pass2 = d_teaquadmult
		dsec d_sec1
		sub_5tp39_test_teapro_loop01
		dsec d_sec2

		d_factor = dg_pass1
		d_sec2 = d_sec2 - d_sec1
		$out "loop factor=" + d_factor + " sec=" + d_sec2

		d_any = d_sec2 / d_sec3
		$out "ratio=" + d_any

		$inp s_any, "more"
		$ift s_any = "*": dinc d_good
	  endi

	  d_loop = d_good
    endw
ends sub_teaquad_5tp39_teapro_loop


subr sub_5TP39_test_teapro_loop01
'updated 2007/12/08, 2007/12/05, 2004/01/23
    vari d_any, s_any, d_dot, s_dot
    vari d_teaquadpart, d_teaquadmult, d_teaquadone
    vari d_divisor, d_root, d_modulus, d_mod1, d_mod2, d_result
    vari d_loop, d_count

    d_teaquadpart = dg_pass1
    d_teaquadmult = dg_pass2

    d_teaquadone = 10 ^ 15

    d_any = d_teaquadone * d_teaquadmult + d_teaquadpart
    dpow d_root, d_any, 0.5

'd_modulus = fmod(fmod(d_teaquadpart, d_divisor)
'+ d_teaquadmult * fmod(d_teaquadone, d_divisor), d_divisor);

    d_result = 1
    d_divisor = 3
    d_loop = 1

    gtag tag_top
	  dinc d_count

	  d_mod1 = d_teaquadpart % d_divisor
	  d_mod2 = d_teaquadone % d_divisor
	  d_modulus = d_teaquadmult * d_mod2 + d_mod1 % d_divisor 

'$out "d_divisor=" + d_divisor + " d_mod1=" + d_mod1 + " d_mod2=" + d_mod2
'$out "d_modulus=" + d_modulus

	  dift d_modulus = 0
		dinc d_loop
		d_result = d_divisor
	  endi

	  d_divisor = d_divisor + 2
    dift d_divisor <= d_root: goto tag_top

    ded$ s_any, d_count, 0, 0
    $out "count=" + s_any
    dg_pass1 = d_result
ends sub_5TP39_test_teapro_loop01


subr sub_5TP39_test_teapro_loop99
'updated 2007/12/05, 2004/01/23
    vari d_any, s_any, d_dot, s_dot
    vari d_teaquadpart, d_teaquadmult, d_teaquadone
    vari d_divisor, d_root, d_modulus, d_mod1, d_mod2, d_result
    vari d_loop, d_count

    d_teaquadpart = dg_pass1
    d_teaquadmult = dg_pass2

    d_teaquadone = 10 ^ 15

    d_any = d_teaquadone * d_teaquadmult + d_teaquadpart
    dpow d_root, d_any, 0.5

'd_modulus = fmod(fmod(d_teaquadpart, d_divisor)
'+ d_teaquadmult * fmod(d_teaquadone, d_divisor), d_divisor);

    d_result = 1
    d_divisor = 3
    d_loop = 1

    gtag tag_top
	  dinc d_count

	  d_mod1 = d_teaquadpart % d_divisor
	  d_mod2 = d_teaquadone % d_divisor
	  d_modulus = d_teaquadmult * d_mod2 + d_mod1 % d_divisor 

'$out "d_divisor=" + d_divisor + " d_mod1=" + d_mod1 + " d_mod2=" + d_mod2
'$out "d_modulus=" + d_modulus

	  dift d_modulus = 0
		dinc d_loop
		d_result = d_divisor
	  endi

	  d_divisor = d_divisor + 2
	  dift d_divisor > d_root: goto tag_end
    goto tag_top
    gtag tag_end

    ded$ s_any, d_count, 0, 0
    $out "count=" + s_any
    dg_pass1 = d_result
ends sub_5TP39_test_teapro_loop99


subr sub_5TP39_test_quiet
'updated 2004/03/21
    vari d_any, s_any, d_dot, s_dot
    vari d_5TP39, d_factor
    vari d_good, d_number

    d_5TP39 = dg_pass1
    d_good = 1

    dift d_good = 1
        d_number = d_5TP39
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any + ", factor=" + d_factor
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 2
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any + ", factor=" + d_factor
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 6
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any + ", factor=" + d_factor
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 8
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any + ", factor=" + d_factor
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 18
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any + ", factor=" + d_factor
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 20
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any + ", factor=" + d_factor
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 30
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any + ", factor=" + d_factor
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 32
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any + ", factor=" + d_factor
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 36
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any + ", factor=" + d_factor
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 38
        dfac d_factor, d_number
        dift d_factor <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any + ", factor=" + d_factor
	  endi
    endi	  
    dg_pass1 = d_good
ends sub_5TP39_test_quiet


subr sub_5TP39_test_simple
'updated 2003/04/10
'use sub_prime_test_using_prime_array rather than dfac
    vari d_any, s_any, d_dot, s_dot
    vari d_5TP39, d_sec1, d_sec2
    vari d_good, d_number

    d_5TP39 = dg_pass1
    dsec d_sec1
    d_good = 1

    dift d_good = 1
        d_number = d_5TP39

	  dg_pass1 = d_number
        sub_prime_test_using_prime_array
        dift dg_pass1 <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 2

	  dg_pass1 = d_number
        sub_prime_test_using_prime_array
        dift dg_pass1 <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 6

	  dg_pass1 = d_number
        sub_prime_test_using_prime_array
        dift dg_pass1 <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 8

	  dg_pass1 = d_number
        sub_prime_test_using_prime_array
        dift dg_pass1 <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 18

	  dg_pass1 = d_number
        sub_prime_test_using_prime_array
        dift dg_pass1 <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 20

	  dg_pass1 = d_number
        sub_prime_test_using_prime_array
        dift dg_pass1 <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 30

	  dg_pass1 = d_number
        sub_prime_test_using_prime_array
        dift dg_pass1 <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 32

	  dg_pass1 = d_number
        sub_prime_test_using_prime_array
        dift dg_pass1 <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 36

	  dg_pass1 = d_number
        sub_prime_test_using_prime_array
        dift dg_pass1 <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dift d_good = 1
        d_number = d_5TP39 + 38

	  dg_pass1 = d_number
        sub_prime_test_using_prime_array
        dift dg_pass1 <> 1
		dinc d_good
		ded$ s_any, d_number, 0, 0
		$out "not prime=" + s_any
	  endi
    endi	  
    dsec d_sec2
    d_any = d_sec2 - d_sec1
    $out "seconds=" + d_any
    dg_pass1 = d_good
ends sub_5TP39_test_simple


subr sub_teaquad_primes_1101
'updated 2008/11/09, 2008/10/19, 2008/10/10, 2007/03/28
'2007/03/19, 2007/03/05, 2007/03/02, 2007/02/27, 2007/02/25
'2006/11/30, 2006/11/26, 2006/11/25, 2006/04/08, 2002/05/02
'find primes of the form of 101
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_loop, d_number, s_number, d_mode
    vari d_firstdigits, d_countofzeros, d_lastdigit, d_primect
    vari d_factor, s_factor, d_totseconds
    vari d_process, d_seconds, d_yfile, s_filename
    vari d_teaquadpart, d_teaquadmult

    d_process = 1
    dift d_process = 1
	  d_mode = 2
	  $inp s_any, "2=2 digit, 3=3 digit above 1E15"
	  $ift s_any = "*": dinc d_process
	  $ift s_any = "3": d_mode = 3
    endi
    dift d_process = 1
	  s_filename = "prim1101.txt"
	  d_yfile = 2
	  $inp s_any, "1=save to file=" + s_filename
	  $ift s_any = "*": dinc d_process
	  $ift s_any = "1": d_yfile = 1
    endi
    dift d_process = 1
	  dift d_yfile = 1
	      flen d_any, s_filename
	      dift d_any >= 0
		    $inp s_any, "1=purge " + s_filename
		    $ift s_any = "*": dinc d_process
		    $ift s_any = "1": fdel d_any, s_filename
	      endi
	  endi
    endi
    dift d_mode = 2
        d_firstdigits = 10
        d_countofzeros = 1
    else
	  d_firstdigits = 1
	  d_countofzeros = 14
    endi	
    d_lastdigit = 1

    dsec d_totseconds

    d_primect = 0
    d_loop = d_process
    dwhi d_loop = 1
	  'construct the number
	  $ch$ s_any, "0", d_countofzeros
	  s_number = d_firstdigits + s_any + "1"

	  'change from s_number to d_teaquadpart, d_teaquadmult
	  sg_pass1 = s_number
	  sub_teaquad_from_string
	  d_teaquadpart = dg_pass1
	  d_teaquadmult = dg_pass2

	  dsec d_seconds

        'test for prime single
        dfak d_factor, d_teaquadpart, d_teaquadmult

	  dsec d_any
	  d_seconds = d_any - d_seconds

	  dift d_factor = 1: dinc d_primect

	  'change to edited string
	  dg_pass1 = d_teaquadpart
	  dg_pass2 = d_teaquadmult
	  sub_teaquad_to_string
	  s_number = sg_pass1

	  ded$ s_factor, d_factor, 0, 0
        s_out = d_primect + "." + " " + s_number
	  $app s_out, ", factor=" + s_factor
	  $app s_out, ", sec=" + d_seconds

	  dift d_factor = 1
	      $out s_out
	      dift d_yfile = 1: fapp d_any, s_filename, s_out
	  else
	      $sho s_out
	  endi

	  'increment
	  'max is 1,000,000,000,000,000,000,001
	  dift d_mode = 2
		dinc d_firstdigits
		dift d_firstdigits > 99
	          d_firstdigits = 10
	          dinc d_countofzeros
		endi
            dift d_countofzeros >= 19
		    'max is 1,000 quintillion and one
		    dinc d_loop
	      endi
	  else
		'three digits above 1E15
		dinc d_firstdigits
		dift d_firstdigits > 999: dinc d_loop
	  endi
    endw

    'construct the number
    $ch$ s_any, "0", d_countofzeros
    s_number = d_firstdigits + s_any + "1"

    'change from s_number to d_teaquadpart, d_teaquadmult
    sg_pass1 = s_number
    sub_teaquad_from_string
    d_teaquadpart = dg_pass1
    d_teaquadmult = dg_pass2

    'change to edited string
    dg_pass1 = d_teaquadpart
    dg_pass2 = d_teaquadmult
    sub_teaquad_to_string
    s_number = sg_pass1

    s_out = "end=" + s_number

    $out s_out
    fapp d_any, s_filename, s_out

    $dat s_dot
    dsec d_any
    d_totseconds = d_any - d_totseconds
    s_out = s_dot + ", total secs=" + d_totseconds
    
    $out s_out
    fapp d_any, s_filename, s_out

    sub_path_prog_memory

    $inp s_any, "done"
ends sub_teaquad_primes_1101


subr sub_primes_time_test
'updated 2002/12/30
'test every 10^14th number for time
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_time1, d_time2, d_time3, d_timehold, d_diff
    vari d_big, d_test, d_factor, d_number, d_increment
    vari d_many
    
    $inp s_dot, "1= to 10^13,  2= to 10^14,  3= to 10^15"
    $ift s_dot = "1"
	  dpow d_big, 10, 13
	  d_big = d_big + 10

	  dpow d_increment, 10, 11
	  d_increment = d_increment * 5
    endi
    $ift s_dot = "2"
	  dpow d_big, 10, 14
	  d_big = d_big + 10

	  dpow d_increment, 10, 12
	  d_increment = d_increment * 5
    endi
    $ift s_dot = "3"
	  dpow d_big, 10, 15
	  d_big = d_big + 10

	  dpow d_increment, 10, 13
	  d_increment = d_increment * 5
    endi

    d_many = 1
    $inp s_any, "how many times to test each"
    $isd d_any, s_any
    dift d_any = 1: $tod d_many, s_any
    d_many = d_many \ 1

    $out "number of times to test each=" + d_many

    d_timehold = 0
    d_number = 1

    dwhi d_number < d_big
	  d_test = d_number - 2

	  d_factor = 2
	  dwhi d_factor <> 1
		d_test = d_test + 2

		dfac d_factor, d_test
	  endw

	  'do d_many of them to make the test more accurate
	  d_time3 = 0
	  d_dot = 1

	  dwhi d_dot <= d_many
		dsec d_time1
		dfac d_factor, d_test
		dsec d_time2

		d_time3 = d_time3 + d_time2 - d_time1
		dinc d_dot
	  endw


	  d_time3 = d_time3 / d_many
	  d_diff = d_time3 - d_timehold
	  
	  ded$ s_any, d_test, 0, 0
	  $out s_any + "  " + d_time3 + ", diff=" + d_diff

	  d_timehold = d_time3
	  d_number = d_increment + d_number
    endw

    $inp s_any, "done"
ends sub_primes_time_test


subr sub_filename
'updated 2002/05/04
'get an output filename into sg_fileout
    vari d_any, s_any, d_dot, s_dot

    dran d_any
    dpow d_dot, 99999, 3
    d_any = d_dot * d_any

    s_any = d_any

    $lok d_dot, s_any, 1, "."
    dift d_dot > 0: $del s_any, d_dot, 1

    $ch$ s_dot, "0", 10    
    $app s_any, s_dot
    $cut s_any, s_any, 3, 7
    sg_fileout = "T" + s_any + ".txt"
ends sub_filename


subr sub_collect_5tp39xx
'updated 2010/08/23, 2010/06/21, 2010/04/01, 2010/02/02, 2010/01/28
'2009/11/30, 2009/11/24, 2009/11/21, 2009/11/18, 2009/11/14
'2009/10/19, 2009/09/06, 2009/07/29, 2009/06/05, 2009/06/03
'2009/05/12, 2009/03/03, 2009/02/28, 2009/02/26, 2009/02/01
'2009/01/29, 2009/01/24, 2008/12/22, 2008/10/20, 2008/04/15, 
'2008/04/10, 2008/02/05, 2007/08/26, 2007/08/23, 2007/08/22
'2007/07/31, 2007/07/11, 2007/07/01, 2007/06/27, 2007/06/26
    vari d_any, s_any, d_dot, s_dot
    vari s_letter, d_process, d_prevcount, s_2code, d_type
    vari s_fileout, s_filein, s_alldata, s_data, s_names
    vari d_loop, s_crlf, d_num, d_count, d_pnumct, d_tnumct

    d_process = 1
    dift d_process = 1
	  $inp s_any, "a, b, p or t files"
	  $ift s_any = "*": dinc d_process
	  $tlo s_any, s_any
	  s_letter = "b"
	  $ift s_any = "a": s_letter = s_any
	  $ift s_any = "p": s_letter = s_any
	  $ift s_any = "t": s_letter = s_any
    endi
    dift d_process = 1
	  d_type = 3
	  $inp s_any, "1=below 250E15, 2=QTP20, 3=all"
	  $ift s_any = "*": dinc d_process
	  $isd d_any, s_any
	  dift d_any = 1: $tod d_type, s_any
    endi
    dift d_process = 1
        dch$ s_crlf, 13, 1
        dch$ s_any, 10, 1
        $app s_crlf, s_any

        s_names = "a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,"
	  $app s_names, "t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,"
	  $app s_names, "n0,n1,n2,n3,n4,n5,h1,h2,h3,h4,"
	  $app s_names, "g0,g1,g2,g3,g4,g5,g6,g7,g8,g9,"
	  $app s_names, "j1,j2,"

	  'get count of previous output file
        s_fileout = s_letter + "_5tp39" + ".txt"
	  finp s_dot, s_fileout
	  $cnt d_prevcount, s_dot, "5TP39"
        fdel d_any, s_fileout

        s_alldata = sg_nothing
    endi

    d_tnumct = 0
    d_num = 1
    d_loop = 2
    dift d_process = 1
	  dift d_type = 1: d_loop = 1
	  dift d_type = 3: d_loop = 1
    endi
    dwhi d_loop = 1  
	  $par s_2code, s_names, ",", d_num
	  $trb s_2code, s_2code
	  $len d_any, s_2code
	  $ift d_any = 2
		dinc d_count

		'5tp39 files
		s_filein = s_letter + "5tp39" + s_2code + ".txt"
		finp s_data, s_filein
		$cnt d_pnumct, s_data, "5TP39"
		d_tnumct = d_tnumct + d_pnumct

		dift d_pnumct > 0
		    $len d_any, s_data
		    s_any = d_count + " " + s_filein + " " + d_any
		    $app s_any, " pnumct=" + d_pnumct
		    $out s_any

		    s_any = "file=" + s_filein + s_crlf + s_data
		    $app s_any, "file=" + s_filein + s_crlf
		    dift d_pnumct > 0: $app s_alldata, s_any
		endi
	  else
		dinc d_loop
	  endi

	  dinc d_num    
    endw

    'qtp20s
    d_num = 1
    d_loop = 2
    dift d_process = 1
	  dift d_type = 2: d_loop = 1
	  dift d_type = 3: d_loop = 1
    endi
    dwhi d_loop = 1  
	  $par s_2code, s_names, ",", d_num
	  $trb s_2code, s_2code
	  $len d_any, s_2code
	  $ift d_any = 2
		dinc d_count

		'qtp20 files
		s_filein = "qtp20" + s_2code + s_letter + ".txt"
		finp s_data, s_filein
		$cnt d_pnumct, s_data, "5TP39"
		d_tnumct = d_tnumct + d_pnumct

		dift d_pnumct > 0
		    $len d_any, s_data
		    s_any = d_count + " " + s_filein + " " + d_any
		    $app s_any, " pnumct=" + d_pnumct
		    $out s_any

		    s_any = "file=" + s_filein + s_crlf + s_data
		    $app s_any, "file=" + s_filein + s_crlf
		    dift d_pnumct > 0: $app s_alldata, s_any
		endi
	  else
		dinc d_loop
	  endi

	  dinc d_num    
    endw

    fout d_any, s_fileout, s_alldata

    s_any = "file=" + s_fileout + " length=" + d_any
    $app s_any, " ct=" + d_count + " totct=" + d_tnumct
    $out s_any

    d_any = d_tnumct - d_prevcount
    $out "previous count=" + d_prevcount + ", diff=" = d_any

    $inp s_any, "return"   
ends sub_collect_5tp39xx


subr sub_hour_lines_of_qtp20xx1
'updated 2010/08/07, 2010/05/20, 2010/05/04, 2010/01/20
    vari d_loop

    'hour lines are saved in sg_hourlines
    'date and hour are in sg_hourdate
    sg_hourlines = sg_nothing

    d_loop = 1
    dwhi d_loop = 1
	  sub_hour_lines_of_qtp20xx2
	  d_loop = dg_pass1
    endw
ends sub_hour_lines_of_qtp20xx1


subr sub_hour_lines_of_qtp20xx2
'updated 2010/08/25, 2010/08/21, 2010/08/16, 2010/08/15, 2010/08/13
'2010/08/11, 2010/07/30, 2010/07/28, 2010/06/21, 2010/06/20
'2010/06/18, 2010/06/17, 2010/06/03, 2010/05/31, 2010/05/28,
'2010/05/27, 2010/05/20, 2010/05/19, 2010/05/15, 2010/05/12
'2010/05/05, 2010/05/04, 2010/04/15, 2010/02/02, 2010/01/28
'2010/01/25, 2010/01/22, 2010/01/20, 2010/01/19, 2009/11/18
'2009/09/24, 2009/09/23, 2009/09/21, 2009/09/17, 2009/09/15
    vari d_any, s_any, d_dot, s_dot, d_tap, s_tap, s_out
    vari s_input, s_dashline
    vari d_repeat, d_process, d_good, d_totqtp
    vari d_prevcount, s_2code, d_long, s_build, d_build
    vari s_fileout, s_filein, s_alldata, s_data, s_names
    vari d_loop1, s_crlf, d_num, d_count, s_line
    vari s_hourdate, s_tpd, d_tpd, d_total

    'hour lines are saved in sg_hourlines
    'date and hour are in sg_hourdate

    d_build = 9999
    s_fileout = "qtp_hrs.txt"
    s_hourdate = sg_hourdate
    d_repeat = 1
    d_process = 1
    $ch$ s_dashline, "-", 70

    $out s_dashline

    s_any = "enter date and hour ie. DD-MMM-YYYY HH or hour HH"    
    $inp s_input, s_any    
    $ift s_input = "*"
	  dinc d_process
	  dinc d_repeat
    endi

    'show build and lines
    dsys d_any, 2
    ded$ s_any, d_any, 0, 0
    $out sg_build + " " + s_any
    $out s_dashline

'1234567890
'count= 12  average= 75.1  total= 650.1 17-JUN-2010 02:00 254

    dift d_process = 1

	  $cnt d_tap, sg_hourlines, "$"
	  d_dot = 1
	  dwhi d_dot <= d_tap
		'extract next hour line
		$par s_line, sg_hourlines, "$", d_dot
		$len d_any, s_line
		dift d_any > 0: $out s_line

		dinc d_dot    
	  endw
    endi

    $out s_dashline

    d_totqtp = 0

    dift d_process = 1
	  $len d_long, s_input
	  dift d_long = 14
		s_hourdate = s_input
	  else
		dift d_long = 2
		    $rep s_hourdate, 13, s_input
		else
		    dinc d_process
		endi
	  endi
    endi
    dift d_process = 1
	  'edit the hour for 0..23
	  $cut s_any, s_hourdate, 13, 2
	  $ist d_any, s_any, "9"
	  dift d_any = 1
		$tod d_any, s_any
		dift d_any > 23: dinc d_process
	  else
		dinc d_process
	  endi
    endi
    dift d_process = 1    
        'hour lines are saved in sg_hourlines
        'date and hour are in sg_hourdate
	  sg_hourdate = s_hourdate

        s_names = "t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,"
        $app s_names, "a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,"
	  $app s_names, "g0,g1,g2,g3,g4,g5,g6,g7,g8,g9,"

        dch$ s_crlf, 13, 1
        dch$ s_any, 10, 1
        $app s_crlf, s_any
    endi

'         1         2         3         4         5         6
'1234567890123456789012345678901234567890123456789012345678901234
'10,755,531,446,160,516,311 16-JAN-2010 17:01 j2 tpd=50.019 54 8
'16-JAN-2010 17:01 j2 tpd=50.019

    d_num = 1
    d_loop1 = d_process
    dwhi d_loop1 = 1  
	  d_good = 1
	  $par s_2code, s_names, ",", d_num
	  $trb s_2code, s_2code
	  $len d_any, s_2code
	  $ift d_any <> 2
		dinc d_good
		dinc d_loop1
	  endi

	  dift d_good = 1
		'qtp20 file name and read in whole file
		s_filein = "qtp20" + s_2code + "a.txt"
		finp s_data, s_filein
		$trb s_data, s_data
		$len d_long, s_data
		dift d_long < 200: dinc d_good
	  endi
	  dift d_good = 1
		'find s_hourdate beginning in d_tap
		$lok d_tap, s_data, 1, s_hourdate
		dift d_tap < 28: dinc d_good
	  endi
'         1         2         3         4         5         6
'1234567890123456789012345678901234567890123456789012345678901234
'10,755,531,446,160,516,311 16-JAN-2010 17:01 j2 tpd= 50.9 54 8
'16-JAN-2010 17:01 j2 tpd= 50.9 54 8
	  dift d_good = 1
		'd_tap is beginning of s_hourdate
		'find beginning of the qtp20 beginning in d_dot
		d_dot = d_tap - 27
		$cut s_line, s_data, d_dot, 70

		'find tpd=
	      $cut s_any, s_line, 49, 4
	      $ift s_any <> "tpd=": dinc d_good
        endi
'         1         2         3         4         5         6
'1234567890123456789012345678901234567890123456789012345678901234
'10,755,531,446,160,516,311 16-JAN-2010 17:01 j2 tpd= 50.9 54 8
'16-JAN-2010 17:01 j2 tpd= 50.9 54 8
	  dift d_good = 1
		'we have qtp20 line in s_line
		'first get most recent d_build
		$bak d_tap, s_data, d_long, "tea build="
		dift d_tap > 0
		    '123456789012345
		    'tea build=
		    d_tap = d_tap + 10
		    $cut s_build, s_data, d_tap, 4
		    $isd d_any, s_build
		    dift d_any = 1
			  $tod d_any, s_build
			  dift d_any < d_build: d_build = d_any
		    endi
		endi
	  endi

	  'we are done for now with s_data
	  s_data = sg_nothing

'         1         2         3         4         5         6
'1234567890123456789012345678901234567890123456789012345678901234
'10,755,531,446,160,516,311 16-JAN-2010 17:01 j2 tpd= 50.9 54 8
'16-JAN-2010 17:01 j2 tpd= 50.9 54 8
	  dift d_good = 1
		'get qtp count
		$cut s_dot, s_line, 55, 20
		$bes s_dot, s_dot
		$par s_any, s_dot, " ", 3
		$trb s_any, s_any
		$isd d_any, s_any
		dift d_any = 1
		    $tod d_any, s_any
		    d_totqtp = d_totqtp + d_any
		endi
	  endi
	  dift d_good = 1
		'5 long just in case of 123.4
		$cut s_tpd, s_line, 53, 5
		$trb s_tpd, s_tpd
		$isd d_any, s_tpd
		dift d_any <> 1: dinc d_good
	  endi
	  dift d_good = 1
		$tod d_tpd, s_tpd
		d_total = d_total + d_tpd
		dinc d_count		

		dto$ s_any, d_count, 2, 0
		$out s_any + ". " + s_line + " " + s_build	
	  endi

	  dinc d_num    
    endw

    dift d_process = 1
	  'format the count
	  dto$ s_any, d_count, 3, 0

	  'format the average
	  d_dot = 0
	  dift d_count > 0: d_dot = d_total / d_count
	  dto$ s_dot, d_dot, 5, 1

	  'format the total
	  dto$ s_tap, d_total, 6, 1

	  'make the build 4 long
	  $ch$ s_build, "0", 10
	  $app s_build, d_build
	  $off s_build, s_build, 4

	  'build the record
	  $out s_dashline
        s_out = "count=" + s_any + "  average=" + s_dot 
	  $app s_out, "  total=" + s_tap + "  " + s_hourdate
	  $app s_out, ":00 " + d_totqtp + " " + s_build
        $out s_out

	  dift d_count > 0
		$app sg_hourlines, s_out + "$"
		fapp d_any, s_fileout, s_out
	  endi
    endi

    'hour lines are saved in sg_hourlines separated by $
    'date and hour are in sg_hourdate
    dg_pass1 = d_repeat
ends sub_hour_lines_of_qtp20xx2


subr sub_path_prog_memory
'updated 2010/05/31, 2010/05/28, 2007/12/22, 2007/12/01, 2007/11/12
'2006/09/25, 2006/09/04, 2006/08/29, 2006/04/23, 2005/10/08
    vari s_any, d_any, s_out
    vari s_path, d_memory, s_memory
    vari s_date, s_version, d_lines, s_lines

    $sys s_version, 3
    $out s_version

    dsys d_any, 2
    ded$ s_any, d_any, 0, 0
    $out sg_build + " " + s_any

    'get interpreter path and name
    $sys s_path, 1
    $out "Path: " + s_path

    $dat s_date
    $cut s_date, s_date, 1, 20
    dsys d_memory, 1
    ded$ s_memory, d_memory, 0, 0

    dsys d_lines, 2
    ded$ s_lines, d_lines, 0, 0

    s_out = "memory=" + s_memory + ", lines=" + s_lines
    $app s_out, ", date=" + s_date
    $out s_out
ends sub_path_prog_memory


subr sub_dfac_speed_test
'updated 2003/09/29
    vari d_any, s_any, d_dot, s_dot
    vari d_sec1, d_sec2, d_maxct, d_count, d_number
    
    $out "1 = 999,090,480,521,891 prime"
    $out "2 = 999,997,874,844,049 has square root= 31,622,743"
    $inp s_any, "pick one"

    $ift s_any = "1"
        $tod d_number, "999,090,480,521,891"
    else
	  $tod d_number, "999,997,874,844,049"
    endi
    $out "number is = " + d_number

    d_maxct = 10
    $inp s_any, "how many times, 10 default"
    $isd d_any, s_any
    dift d_any = 1: $tod d_maxct, s_any

    d_count = 0
    dsec d_sec1
    dwhi d_count <= d_maxct
	  dfac d_dot, d_number
	  dinc d_count
    endw
    dsec d_sec2
    d_any = d_sec2 - d_sec1
    $out "factor=" + d_dot
    $inp s_any, "time=" + d_any
ends sub_dfac_speed_test


subr sub_xyz_math
'updated 2010/02/10
'2010/02/09, 2010/02/06, 2007/09/12, 2007/04/11, 2006/05/04
'2006/04/08, 2005/11/05, 2005/08/20, 2005/06/11, 2004/04/21
'solve a multi number math expression in sg_pass1
'the format is: x=123*567+4.6 etc or y=123*567+4.6
'put answer in dg_xvalue, dg_yvalue, dg_zvalue
'put answer in dg_uvalue, dg_vvalue, dg_wvalue
    vari d_any, s_any, d_dot, s_dot, s_out, s_lok
    vari d_good, d_long, d_loop, d_error, s_dashline
    vari s_line, d_number, s_operator, d_answer, s_xyzvalue
    vari s_work, d_byte, s_term, d_process, s_command, s_aster

    s_command = sg_pass1
    $tup s_line, s_command

    $ch$ s_dashline, "-", 70
    $ift s_line = "XYZ": s_line = "X=X"

    'do we have x=, or y= or z=
    d_process = 2
    $cut s_any, s_line, 1, 2
    $ift s_any = "X=": d_process = 1 
    $ift s_any = "Y=": d_process = 1
    $ift s_any = "Z=": d_process = 1
    $ift s_any = "U=": d_process = 1 
    $ift s_any = "V=": d_process = 1
    $ift s_any = "W=": d_process = 1

    dwhi d_process = 1
        'x is in dg_xvalue, y is in dg_yvalue, z in dg_zvalue
        'u is in dg_uvalue, v is in dg_vvalue, w in dg_wvalue

	  'remove commas and blanks and pipes
	  $swp s_line, ",", sg_nothing
	  $swp s_line, " ", sg_nothing
	  $swp s_line, "|", sg_nothing

	  '| pipe delimited into sg_xyzmath
	  'which holds all xyz commands to show later
	  $app sg_xyzmath, s_line + "|"

        'remove the x= or y= at the beginning in s_work
        $cut s_work, s_line, 3, 100
	  $cut s_any, s_work, 1, 1

	  'put on + if needed
	  $ift s_any <> "+"
		$ift s_any <> "-": s_work = "+" + s_work
	  endi

	  'semi-colon is the end of line operator
        $app s_work, ";"

        $len d_long, s_work
        d_error = 2
        d_byte = 2
        d_answer = 0
        d_loop = 1

        dwhi d_loop = 1
		'do we have the next operator in d_byte
	      $cut s_dot, s_work, d_byte, 1
		s_lok = "+-*/\%^@;"
	      $lok d_any, s_lok, 1, s_dot

	      dift d_any > 0
		    'we have the location of the next operator
		    d_long = d_byte - 2

		    'the current operator is in 1
		    'get the number or x,y,z
		    $cut s_term, s_work, 2, d_long

		    'is this string a number
		    $isd d_good, s_term
		    dift d_good = 1
		        $tod d_number, s_term
		    else
		        'if X then use the xvalue from previous
		        $ift s_term = "X"
			      d_number = dg_xvalue
			      d_good = 1
		        endi
		        $ift s_term = "Y"
			      d_number = dg_yvalue
			      d_good = 1
		        endi
		        $ift s_term = "Z"
			      d_number = dg_zvalue
			      d_good = 1
		        endi
		        $ift s_term = "U"
			      d_number = dg_uvalue
			      d_good = 1
		        endi
		        $ift s_term = "V"
			      d_number = dg_vvalue
			      d_good = 1
		        endi
		        $ift s_term = "W"
			      d_number = dg_wvalue
			      d_good = 1
		        endi
			  dift d_good <> 1: d_error = 1
		    endi
		    dift d_good = 1
			  'get current operator
		        $cut s_operator, s_work, 1, 1
		    
		        $ift s_operator = "+"
				d_answer = d_answer + d_number
			  endi
		        $ift s_operator = "-"
				d_answer = d_answer - d_number
			  endi
		        $ift s_operator = "*"
				d_answer = d_answer * d_number
			  endi
		        $ift s_operator = "/"
				dift d_number = 0
				    $out "zero divide"
				    d_error = 1
				else
				    d_answer = d_answer / d_number
				endi
			  endi
		        $ift s_operator = "\"
				dift d_number = 0
				    $out "zero divide"
				    d_error = 1
				else
				    d_answer = d_answer \ d_number
				endi
			  endi
		        $ift s_operator = "^"
				dpow d_answer, d_answer, d_number
			  endi
		        $ift s_operator = "%"
				'mod
				dift d_number = 0
				    $out "zero divide"
				    d_error = 1
				else
				    d_answer = d_answer % d_number
				endi
			  endi
		        $ift s_operator = "@"
				'round to d_number places
				d_answer = d_answer @ d_number
			  endi

			  'put next operator in 1
		        $cut s_work, s_work, d_byte, 99999
		        d_byte = 1
		    endi
	      endi

	      dinc d_byte

	      $len d_long, s_work
	      dift d_byte > d_long: dinc d_loop

	      dift d_error = 1: dinc d_loop

	      'we end with a semi-colon
	      $cut s_any, s_work, 1, 1
	      $ift s_any = ";": dinc d_loop
        endw

        dift d_error = 1
            s_out = "error in expression: " + s_line
		$inp s_any, s_out
		s_line = "X=X"
        else
		'put value in x,y,z
		$cut s_any, s_line, 1, 1
		$ift s_any = "X": dg_xvalue = d_answer
		$ift s_any = "Y": dg_yvalue = d_answer
		$ift s_any = "Z": dg_zvalue = d_answer
		$ift s_any = "U": dg_uvalue = d_answer
		$ift s_any = "V": dg_vvalue = d_answer
		$ift s_any = "W": dg_wvalue = d_answer

		'show values
		ded$ s_any, dg_xvalue, 0, 0
		s_out = "x=" + s_any
		dift dg_xvalue > 1
		    d_any = dg_xvalue \ 1
		    dift dg_xvalue = d_any
		        dfac d_any, dg_xvalue
		        dift d_any = 1: $app s_out, ":P"
		    endi
		endi

		ded$ s_any, dg_yvalue, 0, 0
		$app s_out, ", y=" + s_any
		dift dg_yvalue > 1
		    d_any = dg_yvalue \ 1
		    dift dg_yvalue = d_any
		        dfac d_any, dg_yvalue
		        dift d_any = 1: $app s_out, ":P"
		    endi
		endi

		ded$ s_any, dg_zvalue, 0, 0
		$app s_out, ", z=" + s_any
		dift dg_zvalue > 1
		    d_any = dg_zvalue \ 1
		    dift dg_zvalue = d_any
		        dfac d_any, dg_zvalue
		        dift d_any = 1: $app s_out, ":P"
		    endi
		endi
		$out s_out

		ded$ s_any, dg_uvalue, 0, 0
		s_out = "u=" + s_any
		dift dg_uvalue > 1
		    d_any = dg_uvalue \ 1
		    dift dg_uvalue = d_any
		        dfac d_any, dg_uvalue
		        dift d_any = 1: $app s_out, ":P"
		    endi
		endi

		ded$ s_any, dg_vvalue, 0, 0
		$app s_out, ", v=" + s_any
		dift dg_vvalue > 1
		    d_any = dg_vvalue \ 1
		    dift dg_vvalue = d_any
		        dfac d_any, dg_vvalue
		        dift d_any = 1: $app s_out, ":P"
		    endi
		endi

		ded$ s_any, dg_wvalue, 0, 0
		$app s_out, ", w=" + s_any
		dift dg_wvalue > 1
		    d_any = dg_wvalue \ 1
		    dift dg_wvalue = d_any
		        dfac d_any, dg_wvalue
		        dift d_any = 1: $app s_out, ":P"
		    endi
		endi

		$out s_out
		$out s_dashline

		'pipe delimited into sg_xyzmath
		'$app sg_xyzmath, s_out + "|"

		$inp s_line, "s=show past xyz commands"

		$tup s_line, s_line

		'do we have x=, or y=
		d_process = 2
		$cut s_any, s_line, 1, 2
		$ift s_any = "X=": d_process = 1 
		$ift s_any = "Y=": d_process = 1
		$ift s_any = "Z=": d_process = 1
		$ift s_any = "U=": d_process = 1 
		$ift s_any = "V=": d_process = 1
		$ift s_any = "W=": d_process = 1

		$ift s_any = "S"
		    'list from sg_xyzmath | pipe delimited
		    $ch$ s_aster, "*", 60
		    s_line = "X=X"

		    $out s_aster
		    d_dot = 1
		    d_loop = 1
		    dwhi d_loop = 1
			  $par s_dot, sg_xyzmath, "|", d_dot
			  $trb s_dot, s_dot
			  $ift s_dot = sg_nothing
				dinc d_loop
			  else
				$out s_dot
				dinc d_dot
			  endi
		    endw
		    $out s_aster
		    d_process = 1
		endi
	  endi
	  s_command = "none"
    endw
    sg_pass1 = s_command
ends sub_xyz_math


subr sub_prime_test_simple
'updated 2006/08/27, 2006/08/26, 2006/08/04, 2005/02/14, 2005/02/13
'2005/02/09, 2005/02/06, 2005/01/30, 2004/11/27, 2003/04/11
'simple test dg_pass1 for prime, if prime set dg_pass1 to 1
'otherwise set dg_pass1 to the divisor
'return number of tealines in dg_pass2
    vari d_any, s_any, d_dot, s_dot
    vari d_number, d_try, d_root, d_mod
    vari d_loop, d_result

    'make positive whole number 
    d_number = dg_pass1 \ 1
    dabs d_number, d_number

    'get root of
    d_any = 1 / 2
    dpow d_root, d_number, d_any

    d_result = 1

    dift d_number > 3
        'first try 2
        d_mod = d_number % 2
        dift d_mod = 0: d_result = 2
    endi

    d_try = 3
    d_loop = d_result
    dift d_try > d_root: dinc d_loop

    dwhi d_loop = 1
	  'test d_try
	  d_mod = d_number % d_try

	  dift d_mod = 0
	      'd_number is not prime
	      dinc d_loop
	      d_result = d_try
	  else
	      d_try = d_try + 2
	      dift d_try > d_root: dinc d_loop
	  endi		
    endw

    dg_pass1 = d_result
ends sub_prime_test_simple


subr sub_speedquick
'updated 2010/08/02, 2010/07/08, 2010/04/29, 2010/04/16, 2010/02/04
'2009/11/10, 2009/11/08, 2009/10/19, 2009/10/18, 2008/02/23
    vari d_any, s_any, d_dot, s_dot
    vari d_time, d_total

    'count of the loop
    d_total = 10 ^ 6 * 5

    dsec d_time

    d_any = 0
    dwhi d_any < d_total
	  dinc d_any
    endw

    dsec d_any

    d_time = d_any - d_time
    dift d_time <= 0: d_time = 1

    d_any = d_total * 3 / d_time 
    d_any = d_any / 1000 / 1000
    ded$ s_any, d_any, 2, 3

    $dat s_dot
    $cut s_dot, s_dot, 1, 20
    sg_pass1 = "meg_lines/sec= " + s_any + " " + " " + s_dot
ends sub_speedquick


subr sub_speed98_test
'updated 2010/03/07
'2010/03/05, 2009/03/15, 2009/01/25, 2008/02/02, 2008/02/01
'2007/12/09, 2007/12/08, 2007/12/07, 2007/12/01, 2007/11/23
'2007/11/21, 2007/11/20, 2007/11/18, 2007/11/16, 2007/11/12
'2007/11/04, 2007/09/15, 2007/07/11, 2007/04/16, 2007/04/11
'2005/11/30, 2005/11/20, 2005/03/31, 2005/02/26, 2004/12/03
'speed test
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_time, d_maxcount, d_count, d_index
    vari s_dashline, d_tseconds
    vari d_teaquadpart, d_teaquadmult

    'get current subroutine name
    $sys s_any, 2
    $out s_any

    $ch$ s_dashline, "-", 70

    $out s_dashline
    sub_path_prog_memory

    d_tseconds = 0

    d_maxcount = 10 ^ 8

    'load array
    d_index = 1
    dwhi d_index <= 20000
	  dtoi d_index, d_index
	  dinc d_index
    endw
 
'dwhi dinc loop
    $out s_dashline
    d_count = 0
    dsec d_time

    dwhi d_count < d_maxcount
	  dinc d_count
    endw

    dsec d_any
    d_time = d_any - d_time
    d_tseconds = d_tseconds + d_time
    $out "1.seconds=" + d_time + " dwhi dinc loop"

'dwhi ddec loop
    $out s_dashline
    d_count = d_maxcount
    dsec d_time

    dwhi d_count > 0
	  ddec d_count
    endw

    dsec d_any
    d_time = d_any - d_time
    d_tseconds = d_tseconds + d_time
    $out "2.seconds=" + d_time + " dwhi ddec loop"

'dwhi +1 loop
    $out s_dashline
    d_count = 0
    dsec d_time

    dwhi d_count < d_maxcount
	  d_count = d_count + 1
    endw

    dsec d_any
    d_time = d_any - d_time
    d_tseconds = d_tseconds + d_time
    $out "3.seconds=" + d_time + " dwhi +1 loop" 

'gtag dinc loop
    $out s_dashline
    d_count = 0
    dsec d_time

    gtag tag_gtagdinc
	  dinc d_count
    dift d_count < d_maxcount: goto tag_gtagdinc

    dsec d_any
    d_time = d_any - d_time
    d_tseconds = d_tseconds + d_time
    $out "4.seconds=" + d_time + " gtag dinc dift loop"

'dwhi dinc itod
    $out s_dashline
    dsec d_time

    d_dot = 10 ^ 7 * 2
    d_count = 0
    d_index = 1
    dwhi d_count < d_dot
        itod d_any, d_index
	  dinc d_index
	  dift d_index > 8000: d_index = 1

        dinc d_count
    endw

    dsec d_any
    d_time = d_any - d_time
    d_tseconds = d_tseconds + d_time
    $out "5.seconds=" + d_time + " dwhi dinc itod" 

'dduo
    $out s_dashline
    '10,000,013,079,892,989,911
    d_any = 10000
    s_dot = "10,000,013,079,892,989,911"
    $out s_dot
    $off s_dot, s_dot, 19
    $tod d_dot, s_dot

    dsec d_time

    dduo d_any, d_dot, d_any

    $out "factor=" + d_any

    dsec d_any

    d_time = d_any - d_time
    d_tseconds = d_tseconds + d_time
    $out "6.seconds=" + d_time + " dduo" 

    $out s_dashline
    ded$ s_any, d_maxcount, 0, 0
    $inp s_any, "tot secs=" + d_tseconds + " loops=" + s_any
ends sub_speed98_test


subr sub_speed_test
'updated 2008/02/02, 2008/01/25, 2007/12/22, 2007/12/14
'2007/12/09, 2007/12/08, 2007/12/07, 2007/12/01, 2007/11/23
'2007/11/21, 2007/11/20, 2007/11/18, 2007/11/16, 2007/11/12
'2007/11/04, 2007/09/15, 2007/07/11, 2007/04/16, 2007/04/11
'2005/11/30, 2005/11/20, 2005/03/31, 2005/02/26, 2004/12/03
'speed test
    vari d_any, s_any, d_dot, s_dot, s_out
    vari d_count, d_maxcount, d_index, d_time1, d_time2  
    vari s_dashline, d_tseconds
    vari d_teaquadpart, d_teaquadmult

    'get current subroutine name
    $sys s_any, 2
    $out s_any

    $ch$ s_dashline, "-", 70

    $out s_dashline
    sub_path_prog_memory

    d_tseconds = 0

    d_maxcount = 10 ^ 6 * 100

'dwhi dinc loop
    $out s_dashline
    d_count = 0
    dsec d_time1

    dwhi d_count < d_maxcount
	  dinc d_count
    endw

    dsec d_any
    d_time1 = d_any - d_time1
    d_tseconds = d_tseconds + d_time1
    ded$ s_any, d_maxcount, 0, 0
    $out s_any + " dinc loop, seconds=" + d_time1

'dwhi +1 loop
    $out s_dashline
    d_count = 0
    dsec d_time2

    dwhi d_count < d_maxcount
	  d_count = d_count + 1
    endw

    dsec d_any
    d_time2 = d_any - d_time2
    d_tseconds = d_tseconds + d_time2
    ded$ s_any, d_maxcount, 0, 0
    $out s_any + "   +1 loop, seconds=" + d_time2

    $out s_dashline
    $out "total time=" + d_tseconds
    $out s_dashline

    sub_path_prog_memory

    $out s_dashline
    $inp s_any, "done"
ends sub_speed_test