HDU ACM 1098 Ignatius's puzzle

分析:裴蜀定理,a,b互质的充要条件是存在整数x,y使ax+by=1。存在整数x,y,使得ax+by=c。那么c就是a,b的公约数。
如果存在数a ,由于对随意x方程都成立。则有当x=1时f(x)=18+ka;有由于f(x)能被65整除,所以f(x)=n*65。即18+ka=n*65有整数解则说明如果成立。

ax+by = c的方程有整数解的一个充要条件是:c%gcd(a, b) == 0。然后枚举直到(65*n-18)%k == 0。

#include<iostream>
using namespace std;

int gcd(int a,int b)
{
	return b?

gcd(b,a%b):a; } bool judge(int a,int b) //65*n-k*a=18==>[65*n+k*(-a)=18] { return 18%gcd(a,b)==0; } int main() { int m,i; while(scanf("%d",&m)==1) { if(judge(65,m)) { for(i=1;;i++) if((i*65-18)%m==0) { printf("%d\n",(i*65-18)/m); break; } } else puts("no"); } return 0; }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值