首页 > 其他 > 详细

数学 hdu 1719

时间:2015-03-27 14:53:45      阅读:216      评论:0      收藏:0      [点我收藏+]

Friend

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2010    Accepted Submission(s): 1014


Problem Description
Friend number are defined recursively as follows.
(1) numbers 1 and 2 are friend number;
(2) if a and b are friend numbers, so is ab+a+b;
(3) only the numbers defined in (1) and (2) are friend number.
Now your task is to judge whether an integer is a friend number.
 

Input
There are several lines in input, each line has a nunnegative integer a, 0<=a<=2^30.
 

Output
For the number a on each line of the input, if a is a friend number, output “YES!”, otherwise output “NO!”.
 

Sample Input
3 13121 12131
 

Sample Output
YES! YES! NO!
 

Source

方程可以转化为 (a+1)*(b+1)=n+1;

//考查知识点:数学推导。。 
#include<stdio.h>
int main()
{
	int n;
	while(~scanf("%d",&n))
	{
		if(n==0)
		{
			printf("NO!\n");
			continue;
		}
		n++;
		while(n%3==0||n%2==0)
		{
			if(n%3==0)
			n/=3;
			if(n%2==0)
			n/=2;
		}
		if(n==1)
		printf("YES!\n");
		else
		puts("NO!");
	} 
	return 0;
}


 

数学 hdu 1719

原文:http://blog.csdn.net/ice_alone/article/details/44675179

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