一、歌德巴赫猜想相关问题: 10000 以内
(1) 有多少素数?
(2) 大偶数分解成两素数之和,在不计分解次序的条件下,分解表达式唯一的有多少个?
注: 分解表达式,14=7+7=3+11不唯一,8=5+3 唯一
% 判断一个数是否是素数
function [result] = isPrime(n)
if n <= 1
result = false;
return;
end
for i = 2:sqrt(n)
if mod(n, i) == 0
result = false;
return;
end
end
result = true;
end
% 构建素数表
prime_table = [];
for i = 2:10000
if isPrime(i)
prime_table = [prime_table i];
end
end
% 统计10000以内的素数个数
num_primes = length(prime_table);
disp(['10000以内有' num2str(num_primes) '个素数。']);
% 统计10000以内的偶数可以表示成两个素数之和的个数
num_decompositions = 0;
for n = 4:2:10000
for i = 1:num_primes
if prime_table(i) > n/2 % 如果一个素数大于n的一半,则不可能分解成两个素数之和
break;
end
if ismember(n - prime_table(i), prime_table) % 判断另一个数是否为素数
num_decompositions = num_decompositions + 1;
break;
end
end
end
disp(['10000以内有' num2str(num_decompositions) '个大偶数可以分解成两个素数之和。']);
二、小明向银行贷款: 贷款 2 万,年利率 0.055,2 年还清。问
(1) 按月等额本金还款,小明每个月还款多少?
(2) 按月等额本息还款,小明每个月还款多少?
% 贷款计算示例
% 假设贷款2万,年利率0.055,借款时间为2年
% 设置贷款基本信息
total_loan = 20000; % 总贷款金额
annual_rate = 0.055; % 年利率
duration_year = 2; % 贷款年限(单位:年)
duration_month = duration_year * 12; % 贷款年限(单位:月)
monthly_rate = annual_rate / 12; % 月利率
% 等额本息计算
xi = (total_loan * monthly_rate * (1 + monthly_rate) ^ duration_month) / ((1 + monthly_rate) ^ duration_month - 1);
monthly_payment_xi = xi; % 计算出来的每月还款额
total_payment_xi = xi * duration_month; % 计算出来还款总额
interest_xi = total_payment_xi - total_loan; % 计算出来的还款总利息
% 等额本金计算
monthly_payment_bj = total_loan / duration_month + total_loan * monthly_rate; % 先算出第一个月还款额
total_payment_bj = 0;
interest_bj = 0;
for i = 1:duration_month
% 计算每个月还款额
monthly_payment_bj = monthly_payment_bj - (total_loan / duration_month) * monthly_rate;
total_payment_bj = total_payment_bj + monthly_payment_bj;
interest_bj = interest_bj + total_loan / duration_month * monthly_rate; % 计算总利息
end
% 输出结果
fprintf('等额本息方式',xi):
%输入贷款金额、年利率、还款年限
amount = input("请输入贷款金额(单位:元):");
rate = input("请输入年利率(例如,0.055 表示 5.5%):");
years = input("请输入还款年限(例如,2 表示 2 年):");
%计算还款月数、每月利率、等额本金每月偿还金额、等额本息每月偿还金额
months = years * 12;
monthRate = rate / 12;
pmtBP = amount / months + amount * monthRate;
pmtEP = amount * monthRate * (1 + monthRate)^months / ((1 + monthRate)^months - 1);
%输出结果
disp("贷款信息:");
disp("贷款金额:" + amount + " 元");
disp("年利率:" + rate*100 + "%");
disp("还款年限:" + years + " 年");
disp("还款月数:" + months + " 个月");
disp("每月利率:" + monthRate*100 + "%");
disp("等额本金还款方式:");
disp("每月偿还金额:" + pmtBP + " 元");
disp("等额本息还款方式:");
disp("每月偿还金额:" + pmtEP + " 元");
三、李总向某钱庄借款 100 万元,钱庄要求李总按月等额本息还款,每月还款3 万元,5 年还清,不考虑手续费,问:(1)李总借款的年利率是多少?(2) 2 年零3个月时,李总获得一笔大额资金可以用来还款,此时,李总次性还款额为多少?
% 计算等额本息每月还款额
P = 1000000; % 借款本金
n = 60; % 还款月数
r = 0.05 / 12; % 月利率
M = P * r * (1 + r)^n / ((1 + r)^n - 1); % 每月还款额
fprintf("每月还款额为%.2f元\n", M);
% 计算2年零3个月后次性还款额
t = 33; % 剩余还款期数
A = P * (1 + r)^t - M * ((1 + r)^t - 1) / r; % 次性还款额
fprintf("2年零3个月后次性还款额为%.2f元\n", A);