如何求这样的最小自然数,要被多个数除后,余数都不同

问题描述:

一个数如果

被3除余数是2,
被5除余数是3,
被7除余数是2。

试求满足此条件的最小自然数?

分析:

通过简单的对问题分析,主要是需要注意两点:

除数和余数。

可以使用不定方程来解决这类问题。

假设最小的自然数是x,它被3、5、7除的商分别是a、 b和c,由此可以列### 方程如下:

x = 3a + 2
x = 5b + 3
x = 7c + 2

根据第一个方程和第二个方程,可以得到a = (5b+ 1)/3;
根据第二个方 法和第3个方程,可以得到c = (5b+1)/7,
因此5b+ 1需要是21的倍数,
此时b的最小值是4, x的值是23。

技巧

由第一个方程和第3个方程可知,x-2需要是21的倍数,
其中最小的x值应该是23,它刚好满足第二个方程,即最小自然数应该是23。


#include <stdio.h>

int main()
{
    int n = 1;
    while (1)
    {
        if (n % 3 == 2 && n % 5 == 3 && n % 7 == 2)
        {
            printf("%d", n);
            break;
        }
        n++;
    }
    return 0;
}

23

#include <stdio.h>
int main()
{
    int n=1;
    while(n++)
    {
        if(n%3==2&&n%5==3&&n%7==2)
        {
            printf("%d",n);
            break;
        }
    }
    return 0;
}