簡單的等式

2021-07-10 21:17:16 字數 876 閱讀 4237

description

現在有乙個等式如下:x^2+s(x,m)x-n=0。其中s(x,m)表示把x寫成m進製時,每個位數相加的和。現在,在給定n,m的情況下,求出滿足等式的最小的正整數x。如果不存在,請輸出-1。

input

有t組測試資料。以下有t(t<=100)行,每行代表一組測試資料。每個測試資料有n(1<=n<=10^18),m(2<=m<=16)。

output

輸出t行,有1個數字,滿足等式的最小的正整數x。如果不存在,請輸出-1。

sample input

4 4 10

110 10

15 2

432 13

sample output

-1 10

3 18

這道題資料真的好水,這樣也能過。很簡單的題目。

第一種方法,可以過。

#include

#include

#include

#include

#include

#include

using

namespace

std;

int main()

if(i*(i+sum)==n)

}if(f)

printf("%i64d\n",i);

else

printf("-1\n");

}return

0;}

還有一種方法,通過列舉s(x,m)來算x,然後輸出x。

通過題目,求出s(x,m)的範圍是0~100,然後列舉s(x,m),然後求出x。

具體的**去看fzu-2125-簡單的等式,這裡會給出具體的思路以及**解釋。

簡單的等式

e 簡單的等式 crawling in process.crawling failed time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice fzu 2125 description...

fzu Problem 2125 簡單的等式

accept 114 submit 492 time limit 1000 msec memory limit 32768 kb problem description 現在有乙個等式如下 x 2 s x,m x n 0。其中s x,m 表示把x寫成m進製時,每個位數相加的和。現在,在給定n,m的情...

FZU 2125 簡單的等式

現在有乙個等式如下 x 2 s x,m x n 0。其中s x,m 表示把x寫成m進製時,每個位數相加的和。現在,在給定n,m的情況下,求出滿足等式的最小的正整數x。如果不存在,請輸出 1。有t組測試資料。以下有t t 100 行,每行代表一組測試資料。每個測試資料有n 1 n 10 18 m 2 ...