码迷,mamicode.com
首页 > 其他好文 > 详细

杭电 HDU 1098 Ignatius's puzzle

时间:2015-03-28 08:52:47      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:acm   c++   杭电   算法   编程   

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

标签:acm   c++   杭电   算法   编程   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!