问题简述:输出1000以内素数,同时输出素数的序数。

程序说明:编写一个函数is_prime(n),用于判断n是否为素数,使用该函数对1-1000的整数进行素性判定并且输出结果。这个程序计算时间上不是最好的,但是逻辑简单。函数is_prime(n)采用试除法判定一个数是否为素数。

1000以内共有168个素数。

Python代码如下:

from math import sqrt
def is_prime(n):
    if n == 1:
        return False
    for i in range(2, int(sqrt(n))+1):
        if n % i == 0:
            return False
    return True

count = 0
for i in range(1, 1000):
    if is_prime(i):
        count = count + 1
        print('{}:{}'.format(count, i))
输出结果如下:

1:2
2:3
3:5
4:7
5:11
6:13
7:17
8:19
9:23
10:29
11:31
12:37
13:41
14:43
15:47
16:53
17:59
18:61
19:67
20:71
21:73
22:79
23:83
24:89
25:97
26:101
27:103
28:107
29:109
30:113
31:127
32:131
33:137
34:139
35:149
36:151
37:157
38:163
39:167
40:173
41:179
42:181
43:191
44:193
45:197
46:199
47:211
48:223
49:227
50:229
51:233
52:239
53:241
54:251
55:257
56:263
57:269
58:271
59:277
60:281
61:283
62:293
63:307
64:311
65:313
66:317
67:331
68:337
69:347
70:349
71:353
72:359
73:367
74:373
75:379
76:383
77:389
78:397
79:401
80:409
81:419
82:421
83:431
84:433
85:439
86:443
87:449
88:457
89:461
90:463
91:467
92:479
93:487
94:491
95:499
96:503
97:509
98:521
99:523
100:541
101:547
102:557
103:563
104:569
105:571
106:577
107:587
108:593
109:599
110:601
111:607
112:613
113:617
114:619
115:631
116:641
117:643
118:647
119:653
120:659
121:661
122:673
123:677
124:683
125:691
126:701
127:709
128:719
129:727
130:733
131:739
132:743
133:751
134:757
135:761
136:769
137:773
138:787
139:797
140:809
141:811
142:821
143:823
144:827
145:829
146:839
147:853
148:857
149:859
150:863
151:877
152:881
153:883
154:887
155:907
156:911
157:919
158:929
159:937
160:941
161:947
162:953
163:967
164:971
165:977
166:983
167:991
168:997