可以建一張質數表(sieve of Eratosthenes,質數篩表),最大上限在int以內就可以了,或更精確地說,答案是比1億3千萬小的9位數。
原本的表只有True, False(只要是質數的倍數都設為True),現在可以改成累加(比如2*3*5=30這個數字,會在質數是2、3以及5的時候 被+1,多個相同質因數2*2*2*3=24也不用擔心,每個質因數只會被加一次)
可以參考下方網址的詳細寫法
https://euler.stephan-brumme.com/47/