南洋oj 题目144小珂的苦恼

来源:互联网 发布:linux apache压力测试 编辑:程序博客网 时间:2024/04/29 16:35

**

小珂的苦恼

**
时间限制:1000 ms | 内存限制:1000 KB
难度:2
描述
小珂是一名初中生,她现在很苦恼,因为老师布置了一个让她苦恼的作业,你能不能帮助她呢?题目信息如下。
已知二元一次方程 a*x+b*y=n, 判断这个二元一次方程有没有整数解,x,y为未知数,其中a,b,n都为整数且不等于零,同时满足0<a,b,n<2^16-1。
输入
第一行有一个整数0<n<=1000000表示有 n组测试数据,接下来的每一行有三个整数分别是a,b,n

输出
存在整数x和y使得方程有解,输出“Yes”,否则输出“No”

样例输入
2
2 4 2
3 9 7
样例输出
Yes
No
这是道数学题,数学题,数学题。
丢番图方程又名不定方程、整系数多项式方程,是变量仅容许是整数的多项式等式;即形式如右上角图的方程,其中所有的aj、bj和c均是整数,若其中能找到一组整数解m1,m2…mn者则称之有整数解。
一次不定方程是形式如a1x1 + a2x2 + … + anxn = c的方程,一次不定方程有整数解的充要条件为: (a1,…,an)须是c的因子,其中(a1,…,an)表示a1,…,an的最大公因子。
若有二元一次不定方程ax + by = c,且(a,b) | c,则其必有一组整数解x1,y1,并且还有以下关系式:
* x = x1 + [b / (a,b)]t
* y = y1 − [a / (a,b)]t
t为任意整数,故此一次不定方程有无限多解。

#include<stdio.h>int main(){   int a,b,n,l;   scanf("%d",&l);   while(l--)   {       int d;       scanf("%d %d %d",&a,&b,&n);       while(b!=0)        {            d=a%b;            a=b;            b=d;        }        if(n%a==0)            printf("Yes\n");        else            printf("No\n");   }   return 0;}
0 0
原创粉丝点击