1080 兩個數的平方和
基準時間限制:1 秒 空間限制:131072 kb 分值: 5 難度:1級演算法題 收藏 關注
給出乙個整數n,將n表示為2個整數i j的平方和(i <= j),如果有多種表示,按照i的遞增序輸出。
例如:n = 130,130 = 3^2 + 11^2 = 7^2 + 9^2 (注:3 11同11 3算1種)
input
乙個數n(1 <= n <= 10^9)
output
共k行:每行2個數,i j,表示n = i^2 + j^2(0 <= i <= j)。
如果無法分解為2個數的平方和,則輸出no solution
input示例
130output示例
3 11
7 9思路:x*x+y*y=n => 判斷 [sqrt(n-x*x)]的平方與x的平方的和是否和n相等(注:[ ] 即不超過該數的最大整數,[3.5]=3,[3]=3)
剩下的就是判重了,,,我是做乙個陣列,進行儲存,然後遍歷。。。後來看了其他人的**發現好蛋疼——完全可以直接用x為防重條件。。。看來要走的路還很長。。。
下面貼了我自己的**:
**#include #include using namespace std;
int a[100001];
int test(int x,int l)
{ int flag=0;
for(int i=0;i>n)
{ m=(int)sqrt((double)n);
flag=0;l=0;
for(int i=0;i<=m;i++)
{x=i;
y=(int)sqrt((double)(n-i*i));
if(x*x+y*y==n)
{ a[l]=y;
c=test(x,l);
l++;
if(c==0)
{cout<
51nod點頭網 1136 尤拉函式
來自51nod點頭網的題 1136 尤拉函式 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 收藏 關注 對正整數n,尤拉函式是少於或等於n的數中與n互質的數的數目。此函式以其首名研究者尤拉命名,它又稱為euler s totient function 函式 尤拉商數等。...
51nod點頭網 1240 莫比烏斯函式
題目鏈結 1240 莫比烏斯函式 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 收藏 關注 莫比烏斯函式,由德國數學家和天文學家莫比烏斯提出。梅滕斯 mertens 首先使用 n miu n 作為莫比烏斯函式的記號。據說,高斯 gauss 比莫比烏斯早三十年就曾考慮過這...
51nod 1080 兩個數的平方和
1080 兩個數的平方和 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個整數n,將n表示為2個整數i j的平方和 i j 如果有多種表示,按照i的遞增序輸出。例如 n 130,130 3 2 11 2 7 2 9 2 注 3 11同11 3算1種 inpu...