tmp = summatory_list[i] - summatory_list[i - 1]
        mobi_or_liouvi_list.append(tmp)

    return mobi_or_liouvi_list

# ===============================================================================================
if __name__=='__main__':

    target_num, factor_list_option, sort_option = mert_parse_arguments_with_sort_option()

    if(factor_list_option != 1) and (factor_list_option != 3):
        print 'factor_list_option only support 1 or 3 at this moment.'
        # sys.exit(0)

    accumulated_parity_his, total_cnt = read_mert_list_from_file(target_num, factor_list_option)

    # save mobi_list, because other function will need it.
    if(g_TRUE_PRIME == factor_list_option):

        # get mobi_list from accumulated_parity_his
        mobi_list = get_mobi_or_liouvi_from_summatory(accumulated_parity_his)

        # For small dataset, display all of them on screen. For large dataset, just display length of the list.
        if(len(mobi_list) <= 1000):
            print 'mobi_list = ', mobi_list
        else:
            print 'len(mobi_list) = ', len(mobi_list)

        file_name = 'outputs_mert\\mobi_upto_%d.txt'%(target_num)
        write_1d_data_list_to_file(file_name, mobi_list)
# a recursive formula for mert, mert(n) only depends on the value of mert and mobi upto sqrt(n)
# M(x) = 2*M(sqrt(x)) - sum(mobi(i)*mobi(j)*[x/i*j]) (where, i, j <= sqrt(x))
#
# Note_1: This formula maybe related to the formula as mert_recur_model.py

import matplotlib.pyplot as plt
import numpy as np

from read_write_a_list_to_file import read_1d_data_list_from_file
from read_write_mert_list_to_file import read_mert_list_from_file

target_num = 100000
factor_list_option = 1

# read mert_list
mert_list, total_cnt = read_mert_list_from_file(target_num, factor_list_option)

# target_num = 200000
file_name = 'outputs_mert\\mobi_upto_%d.txt'%(target_num)
mobi_list = read_1d_data_list_from_file(file_name)

# a recursive formula for mert, mert(n) only depends on the value of mert and mobi upto sqrt(n)
# M(x) = 2*M(sqrt(x)) - sum(mobi(i)*mobi(j)*[x/i*j]) (where, i, j <= sqrt(x))
def mert_recur_2(n):

    sqrt_n = int(np.sqrt(n))

    mert_sqrt_n = mert_list[sqrt_n - 1]

    tmp_sum = 0
    for i in range(1, sqrt_n + 1):