1 --逻辑表达式
2
3 --1+2+3+...+n
4 function fun1(n)
5 local sum = 0
6 for i=1,n do
7 sum = sum + i
8 end
9 return sum
10 end
11
12 -- 计算奇数和
13 function fun2(n)
14 local sum = 0
15 for i=1,n,2 do
16 sum = sum + i
17 end
18 return sum
19 end
20
21 -- 计算偶数和
22 function fun3(n)
23 local sum = 0
24 for i=2,n,2 do
25 sum = sum + i
26 end
27 return sum
28 end
29
30 -- 计算n!
31 function fun4(n)
32 local sum = 1
33 for i=1,n do
34 sum = sum * i
35 end
36 return sum
37 end
38
39 -- 计算1+2!+3!+...+n!
40 function fun5(n)
41 local sum,t=0,1
42 for i=1,n do
43 t = 1
44 for j=1,i do
45 t = t * j
46 end
47 sum = sum + t
48 end
49 return sum
50 end
51
52 -- 计算 1+ 1/1! +1/2! +1/3! + ...+1/n!
53 function fun6(n)
54 local sum=1
55 for i=1,n do
56 sum = sum + 1/fun4(i)
57 end
58 return sum
59 end
60
61 -- 判断n是否为素数(质数)
62 function fun7(n)
63 io.write(n)
64 local t = math.sqrt(n)
65 for i=2,t do
66 if n%i==0 then
67 return false
68 end
69 end
70 return true
71 end
72
73 -- 1000以内的水仙花数 如 153 = 1^3 + 5^3 + 3^3
74 function fun8()
75 local sum = 0
76 local i,j,k=0
77 for num=101,999 do
78 i = math.floor(num/100)
79 j = math.floor(num%100/10)
80 k = num%10
81 if num == i^3 + j^3 + k^3 then
82 print(num)
83 end
84 end
85 end
86
87 table_str = '0123456789abcdefghijklmnopqrstuvwxyz'
88 -- 将10进制数转换为二进制数
89 function fun9( n )
90 local ys = n % 2
91 n = math.floor(n/2)
92 if n~=0 then
93 fun9(n)
94 end
95 io.write(string.sub(table_str,ys+1,ys+1))
96 end
97 -- 将10进制数转换为八进制数
98 function fun10( n )
99 local ys = n % 8
100 n = math.floor(n/8)
101 if n~=0 then
102 fun10(n)
103 end
104 io.write(string.sub(table_str,ys+1,ys+1))
105 end
106
107 -- 将10进制数转换为十六进制数
108 function fun11( n )
109 local ys = n % 16
110 n = math.floor(n/16)
111 if n~=0 then
112 fun11(n)
113 end
114 io.write(string.sub(table_str,ys+1,ys+1))
115 end
116
117 -- 将10进制数转换为N进制数
118 function fun12( n ,N)
119 local ys = n % N
120 n = math.floor(n/N)
121 if n~=0 then
122 fun12(n,N)
123 end
124 io.write(string.sub(table_str,ys+1,ys+1))
125 end
126
127
128 function main( )
129 print(fun1(100))
130 print(fun2(10))
131 print(fun3(10))
132 print(fun4(10))
133 print(fun5(4))--1+2+6+24
134 print(fun6(20))
135 print(fun7(20) and '是素数!' or '不是素数')
136 print(fun7(13) and '是素数!' or '不是素数')
137 fun8() -- 水仙花
138 fun9(100);print('')--转换为二进制
139 fun10(100);print('')--转换为八进制
140 fun11(100);print('')--转换为十六进制
141 fun12(100,36);print('')--转换为36进制
142 end
143
144 main()