gpt4 book ai didi

c - 给定某个整数 N,有多少个基数 b 使得 N 的基数 b 表示以 1 开头?

转载 作者:行者123 更新时间:2023-11-30 20:21:51 25 4
gpt4 key购买 nike

这个问题是在 codechef 竞赛之一中提出的。我已经在 c 中尝试过了。下面是我的代码:

    scanf("%d",&N);
count=0;
for(i=2;i<=N;i++)
{

c=a;
while(c>=i)
{
c=c/i;
}
if(b==1)
count++;
}

printf("%d\n",count);

但这只给了我部分分数。能在更短的时间内解决吗?如果是这样,怎么办?

最佳答案

基数 b 中以 1 和 d 数字开头的最小数字是 10...0,即 b^ (d-1).

最大的数字是2*b^(d-1)-1。因此,给定数字 N 落在该范围内的基数由不等式给出

pow(0.5*(N+1), 1.0/(d-1) ) <= b <= pow(N, 1.0/(d-1) )

通过适当的舍入,考虑随机浮点误差,您可以直接计算有多少个整数 b 在这些边界内。

关于c - 给定某个整数 N,有多少个基数 b 使得 N 的基数 b 表示以 1 开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41305215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com