首页 > 其他 > 详细

杭电 HDU 1098 Ignatius's puzzle

时间:2015-03-28 08:51:27      阅读:224      评论:0      收藏:0      [点我收藏+]

Ignatius‘s puzzle

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 7068    Accepted Submission(s): 4883


Problem Description
Ignatius is poor at math,he falls across a puzzle problem,so he has no choice but to appeal to Eddy. this problem describes that:f(x)=5*x^13+13*x^5+k*a*x,input a nonegative integer k(k<10000),to find the minimal nonegative integer a,make the arbitrary integer x ,65|f(x)if
no exists that a,then print "no".

 

Input
The input contains several test cases. Each test case consists of a nonegative integer k, More details in the Sample Input.
 

Output
The output contains a string "no",if you can‘t find a,or you should output a line contains the a.More details in the Sample Output.
 

Sample Input
11 100 9999
 

Sample Output
22 no 43
 

Author

eddy

题目的关键是函数式f(x)=5*x^13+13*x^5+k*a*x;   用数学归纳法证明:x取任何值都需要能被65整除..

所以我们只需找到f(1)成立的a,并在假设f(x)成立的基础上,
证明f(x+1)也成立即可。此时经过整理 只要(18+k*a)能够被65整除 ,求最小a的问题。

 

#include<iostream>
using namespace std;
int main()
{
	int k,a;
	while(cin>>k)
	{
		int i;
		for( i=0;i<66;i++)
 		  if((18+k*i)%65==0)
		  {
			  cout<<i<<endl;
			break;
		  }
		if(i==66)
			cout<<"no"<<endl;
	}
	return 0;
}


 

 

杭电 HDU 1098 Ignatius's puzzle

原文:http://blog.csdn.net/lsgqjh/article/details/44685981

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!