小米 oj 纯位数

- 纯位数

序号:#101难度:非常难时间限制:2000ms内存限制:20M

描述

在数学中,所谓“纯位数”是指由相同位元重复而组成的自然数。比如在十进制中,1,22,333,555 都是纯位数。 很显然,15 在十进制中不是一个纯位数,但是在二进制 15(10) = 1111(2) 却是一个纯位数。

一个显然的事实是,对于正整数 N,其在 N+1 进制中必然是一个一位数,也就必然是个纯位数。

对于一个正整数 N,试找出使其成为纯位数的最小进制 K。

输入

一个正整数 N (0 < N < 10^8)

输出

使 N 为纯位数的最小进制 K

输入样例

22
15

 复制样例

输出样例

10
2
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
typedef long long ll;
int n;
bool ok(int k)
{
    int N=n;
    int tmp=N%k;
    while(N%k==tmp)
    {
        N/=k;
    }
    return N==0;
}
int main()
{
    while(~scanf("%d",&n))
    {
        for(int i=2;i<=n+1;i++)
        {
            if(ok(i)){printf("%d
",i);break;}
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/linruier/p/10035290.html