【C语言训练】8除不尽的数

题目链接:http://115.28.203.224/problem.php?cid=1010&pid=2

题目描述

一个自然数被8除余1,所得的商被8除也余1,
再将第二次的商被8除后余7,最后得到一个商为a.
又知这上自然数被17除余4.所得的商被17除余15,
最的得到一个商是a的2倍.

求这个自然数.

输入

输出

思路

假设这个数是x,由题意可知,

x/8=i...1 i/8=j...1 j/8=a...7
倒推可知 j=8a+7 i=8(8a+7)+1 x=((8(8a+7)+1)*8+1

x/17=k...4 k/17=2a...15
倒推可知 k=2*17a+15 x=17*(2*17a+15)+4

显然x=((8(8a+7)+1)*8+1=17*(2*17a+15)+4

代码

 1 #include 
 2 using namespace std;
 3 int main()
 4 {
 5     for(int a = 0;  ; a++)
 6     {
 7         int i = ((a*8+7)*8+1) * 8 + 1;
 8         int j = (34*a+15) * 17 + 4;
 9         if(i == j)
10         {
11             cout<<i;
12             break;
13         }
14     }
15     return 0;
16 }

你可能感兴趣的:(【C语言训练】8除不尽的数)