-2
この質問は、codechef競技会の1つで尋ねられます。私はcで試しました。以下は私のコードです:いくつかの整数Nが与えられた場合、Nのベースb表現が1から始まるようにいくつのベースbがそこにあるか?
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);
しかし、これは私に部分的なマークを与えています。より短い時間で解決できるか?もしそうなら、どうですか?
「a」とは何ですか?それは「N」ですか? – Barmar
ループで分割する代わりに、N base iのログを計算し、次に「i ** floor(log)」で除算します。 – Barmar
どこで 'b'を設定しますか?それは 'c'でしょうか? – Barmar