2100.txt
来自「北大ACM题目例程 详细的解答过程 程序实现 算法分析」· 文本 代码 · 共 40 行
TXT
40 行
# include <stdio.h>
# include <math.h>
__int64 n,a,b;
struct node{
__int64 a,b;
}p[1000];
int num;
int main(){
__int64 d,k;
scanf("%I64d",&n);
num=0;
for(b=1;;b++){
d=12*n-b*b*b+b;
if(d<0)break;
if(d%(3*b))continue;
d/=3*b;
k=(__int64)sqrt((double)d+1e-5);
if(k*k!=d)continue;
d=k-b+1;
if(d%2||d<=0)continue;
p[num].a=d/2,p[num++].b=b;
}
printf("%d\n",num);
while(num--){
printf("%I64d",p[num].b);
for(k=0;k<p[num].b;k++){
printf(" %I64d",p[num].a+k);
}
printf("\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?