首页 > 其他分享 >使用Julia解答欧拉计划——30题

使用Julia解答欧拉计划——30题

时间:2023-01-11 17:12:14浏览次数:38  
标签:function end 数字 Int sum 30 list Julia 欧拉

题目

找到所有数字,其自身等于其各位数字的5次幂之和。题目来源欧拉计划30题图片

解答

由于数字较大,因此通过采用先将数字转变为字符串的方式来读取其中的每个数字。

a是一个n位数字,我们需要先估算n的大小


function calc(n)
    (n-1)log(10)-log(n)-5 * log(10)
end
function myn()
    n = 1
    while calc(n) < 0
        n += 1
    end
    n-1
end
myn()

所以数字顶多是6位数,那么数字上限就是

using Parsers
function my_sum_five(a)
    mylist = Int[]
    for i ∈ a
        push!(mylist,parse(Int,i))
    end
    mylist .|> fivelevel |> sum
end
function fivelevel(A::Int)
    A^5
end
function myans()
    new_ans_list = Int[]
    for i ∈ 2:6*9^5
        if i == my_sum_five(string(i))
            push!(new_ans_list,i)
        end
    end
    sum(new_ans_list)
end


标签:function,end,数字,Int,sum,30,list,Julia,欧拉
From: https://www.cnblogs.com/haowen-t/p/17044336.html

相关文章