Matlab 编程 Project Euler Problem 21 Amicable numbers

本文介绍了一种使用MATLAB实现的算法,该算法用于寻找亲和数对,即两个整数,其中一个整数的所有真因数之和等于另一个整数,反之亦然。通过循环迭代和函数调用,程序能够找出10000以内的一系列亲和数对。
%Amicable_numbers_20.m
%求一对亲和数:任一个数的所有因数的和等于另一个数

function sum_prime=func_factor(x)
sum_prime=0;
for i=1:round(x/2)
    if(rem(x,i)==0)
        sum_prime=sum_prime+i;
    end
end


clear all;
close all;
Factor=zeros(2,100);  %构造 2 X 100 的数组
k=1;
for i=1:10000
    num_1=func_factor(i);  %计算 i 的所有因数的和
    if(i==func_factor(num_1))  %若相等,则找到
        Factor(1,k)=i;
        Factor(2,k)=num_1;
        k=k+1;
    end
end
%disp(Factor)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值