【2019秋PAT乙级真题】7-3 缘分数 (20 分)

7-3 缘分数 (20 )

所谓缘分数是指这样一对正整数 a  b,其中 a 和它的小弟 a−1 的立方差正好是另一个整数 c 的平方,而 c 正好是 b 和它的小弟 b−1 的平方和。例如 83​−73​=169=132,而 13=32​+22,于是 8 3 就是一对缘分数。

给定 a 所在的区间 [m,n],是否存在缘分数?

输入格式:

输入给出区间的两个端点 0<m<n≤25000,其间以空格分隔。

输出格式:

按照 a 从小到大的顺序,每行输出一对缘分数,数字间以空格分隔。如果无解,则输出 No Solution

输入样例 1

8 200

输出样例 1

8 3

105 10

输入样例 2

9 100

输出样例 2

No Solution

 

#include<iostream>
#include<cmath>
using namespace std;
//a*a*a-(a-1)*(a-1)*(a-1)==(b*b+(b-1)*(b-1))*(b*b+(b-1)*(b-1));
int pingfang[100000];
int main(){
	for(int i=2;;i++){
		int p=i*i+(i-1)*(i-1);
		if(p>100000){
			break;
		}
		pingfang[p]=i;
	}
	int m,n;
	cin>>m>>n;
	int flag=0;
	for(int i=m;i<=n;i++){
		int p=i*i*i-(i-1)*(i-1)*(i-1);
		int s=p;
		p=sqrt(p);
		if(pingfang[p]!=0&&(sqrt(s)-p)<0.001){
		
			flag=1;
			cout<<i<<" "<<pingfang[p]<<endl;
		}
	}if(flag==0){
		cout<<"No Solution";
	}
	return 0;
}

 

发布了464 篇原创文章 · 获赞 201 · 访问量 26万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 黑客帝国 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览