从网上一张图开始。。。勾起了我撸代码的冲动。
def is_prime_number(x):#判断一个数是不是质数
if x <= 1:
return False
for i in range(2, x - 1):
if (x % i == 0):
return False
else:
continue
return True
def composite(x):#将输入数字作因数分解,得到质因数和(int)剩余值
for i in range(2, x - 1):
if (x % i == 0):
if is_prime_number(i):
return i, int(x / i)
return 1, x
k = 707829217
first, second = composite(k)
if is_prime_number(first) & is_prime_number(second) :
print(k, '=',first,'*',second)
else:
print("无法分解为两个质数!")
707829217 = 8171 * 86627
def three_count_in_number(string, keyword):
return len(string.split(keyword))-1
def three_count(k):
n = 0;
for i in range(k):
if (i%2 == 1):
a = three_count_in_number(str(i),"3")
if a > 0:
n += a
print(i,end=" ")
print("n = ", n)
three_count(1000)
3 13 23 31 33 35 37 39 43 53 63 73 83 93 103 113 123 131 133 135 137 139 143 153 163 173 183 193 203 213 223 231 233 235 237 239 243 253 263 273 283 293 301 303 305 307 309 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 341 343 345 347 349 351 353 355 357 359 361 363 365 367 369 371 373 375 377 379 381 383 385 387 389 391 393 395 397 399 403 413 423 431 433 435 437 439 443 453 463 473 483 493 503 513 523 531 533 535 537 539 543 553 563 573 583 593 603 613 623 631 633 635 637 639 643 653 663 673 683 693 703 713 723 731 733 735 737 739 743 753 763 773 783 793 803 813 823 831 833 835 837 839 843 853 863 873 883 893 903 913 923 931 933 935 937 939 943 953 963 973 983 993 n = 200
!注意:由于866278171数字太大,可能会花费你想当长的时间寻找答案。