作业帮 > 综合 > 作业

MATLAB 一个整数用连续多个整数之和表示

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 02:52:37
MATLAB 一个整数用连续多个整数之和表示
用MATLAB编制程序验证一个正整数能否可以表示为多个连续正整数之和.(要求将2到100之间的所有整数给出相应的结果,并总结出规律.)
for q=2:100
for n=1:50
Sol=solve(['m*(m+1)/2-',num2str(n*(n+1)/2),'=',num2str(q)]);
Sol=double(Sol);
a=find(Sol>0);
so=Sol(a);
if (fix(so)==so)&&((n+1)~=so)
disp([num2str(q),'=',num2str(n+1),'+.+',num2str(so)]);
break;
end
end
end
%结果如下:
%规律有很多,其中大质数只能分解为两数之和;属于2的次方的数不能表示
%其他数的分解 此程序遵循分解的个数最多原则,
%其他你自己看
5=2+.+3
7=3+.+4
9=2+.+4
11=5+.+6
12=3+.+5
13=6+.+7
14=2+.+5
15=4+.+6
17=8+.+9
18=3+.+6
19=9+.+10
20=2+.+6
21=6+.+8
22=4+.+7
23=11+.+12
24=7+.+9
25=3+.+7
26=5+.+8
27=2+.+7
29=14+.+15
30=4+.+8
31=15+.+16
33=3+.+8
34=7+.+10
35=2+.+8
36=11+.+13
37=18+.+19
38=8+.+11
39=4+.+9
40=6+.+10
41=20+.+21
42=3+.+9
43=21+.+22
44=2+.+9
45=5+.+10
46=10+.+13
47=23+.+24
48=15+.+17
49=4+.+10
50=8+.+12
51=6+.+11
52=3+.+10
53=26+.+27
54=2+.+10
55=9+.+13
56=5+.+11
57=7+.+12
58=13+.+16
59=29+.+30
60=4+.+11
61=30+.+31
62=14+.+17
63=3+.+11
65=2+.+11
66=15+.+18
67=33+.+34
68=5+.+12
69=9+.+14
70=7+.+13
71=35+.+36
72=4+.+12
73=36+.+37
74=17+.+20
75=3+.+12
76=6+.+13
77=2+.+12
78=18+.+21
79=39+.+40
80=14+.+18
81=5+.+13
82=19+.+22
83=41+.+42
84=7+.+14
85=4+.+13
86=20+.+23
87=12+.+17
88=3+.+13
89=44+.+45
90=2+.+13
91=10+.+16
92=8+.+15
93=13+.+18
94=22+.+25
95=5+.+14
96=31+.+33
97=48+.+49
98=11+.+17
99=4+.+14
100=9+.+16