|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
) c" D2 ~9 b. |7 }; l: E. g0 b
! m" B. h7 w& d% [- O) g这个是一个函数,求一个数的真因数
) `$ C/ F6 [9 X$ l1 Afunction y=myfun(n)
! Z- T' {/ h7 F$ j3 P: N& a+ X y1=[];! f0 {, O* h. _
for i=1:fix(n/2);
, K# P- J' {* g% a% [ if mod(n,i)==0;3 Z( Z+ r5 W4 q3 ]0 i% r; n6 [( C
y1=[y1,i,n/i];
& i% D/ u7 W. W+ Q c% l end
" N2 L+ {: S; Q1 q# G end9 d. d6 J" N, j
y=unique(y1);
, ?+ q3 W0 n: F: G- Fend
& |" M9 K6 y0 a1 K! S* j然后我用这个函数求1到1000的亲和数对
7 v6 }4 M6 y4 X2 cfor a=1:10000;
L; }/ B9 ~0 a6 `8 x6 P$ P Q) F Z0 U7 V( P+ a" v% k, A
b=sum(myfun(a)); %求a的真因数和 为b
7 x$ X b% {. o6 b7 t- ^' P* s# Y/ \$ C+ I
c=sum(myfun(b)); %求b的真因数和
) y0 L$ K1 x3 D; ]. z7 E1 ~- J, \1 l8 x
if c==a 5 p1 ?1 \, g& ?6 b5 n! v0 o
4 K" i" Q" f# b2 b disp(a) %如果a的真因数和b的真因数相等 则输出a. B' T- X9 ? m9 o0 W4 {1 e
c* n0 E1 O" l* U) k$ w% z) G
end3 l! o, a6 m0 w/ V& f5 U
' Q N6 W: g* W/ a0 j2 @0 ~# ?end! X, b# ]9 P: J
8 w" l5 r( z0 M: J1 _/ W0 d, Z A1 F R; ~/ ?9 t
5 h) A( }3 X6 [: a: S
$ E a: ~; e2 V; E8 A 但是他不输出任何数,7 W/ A0 L. q" J% t
附上亲和数对# S9 c& C' \& E' o0 E! |+ S
亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。- u7 E: Z, u: C* b
就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。" u# r8 v3 o3 j# T
请教大神,非常感谢! |
|