问题简述:输出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