博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5773. 【NOIP2008模拟】简单数学题
阅读量:4498 次
发布时间:2019-06-08

本文共 1440 字,大约阅读时间需要 4 分钟。

Description   

  话说, 小X是个数学大佬,他喜欢做数学题。

有一天,小X想考一考小Y。他问了小Y一道数学题。题目如下:      对于一个正整数N,存在一个正整数T(0<T<N),

使得的值是正整数。

      小X给出N,让小Y给出所有可能的T。如果小Y不回答这个神奇的大佬的简单数学题,他学神的形象就会支离破碎。所以小Y求你帮他回答小X的问题。
 

Input

      一个整数N。
 

Output

      第一个数M,表示对于正整数N,存在M个不同的正整数T,

使得是整数。

后面是M个数,每一个数代表可能的正整数T(按从小到大的顺序排列)。
 
Solutions

设这个式子=K,得T=(2K-2)/(2K-1)*N,

然后只需枚举N的因数,判断2K-1等于因数时,是否为整数。

是,算出T,统计答案即可。

 

代码

1 var 2   n,m:int64; 3   a:array [0..100001] of int64; 4 procedure qsort(l,r:longint); 5 var 6   i,j:longint; 7   mid,t:int64; 8 begin 9   if l>r then exit;10   i:=l; j:=r;11   mid:=a[(l+r) div 2];12   repeat13     while a[i]
mid do dec(j);15 if i<=j then16 begin17 t:=a[i]; a[i]:=a[j]; a[j]:=t;18 inc(i); dec(j);19 end;20 until i>j;21 qsort(i,r);22 qsort(l,j);23 end;24 25 procedure main;26 var27 i:longint;28 k,t:int64;29 begin30 m:=0;31 for i:=1 to trunc(sqrt(n)) do32 if n mod i=0 then33 begin34 if (i+1) mod 2=0 then35 begin36 k:=(i+1) div 2;37 t:=(k+k-2)*(n div i);38 if (t>0) and (t
0) and (t
a[i+1] then68 write(' ',a[i]);69 end;70 71 begin72 assign(input,'math.in');73 assign(output,'math.out');74 reset(input);75 rewrite(output);76 readln(n);77 main;78 qsort(1,m);79 print;80 close(input);81 close(output);82 end.

 

转载于:https://www.cnblogs.com/zyx-crying/p/9443409.html

你可能感兴趣的文章
JS函数式编程【译】3.2 开发和生产环境
查看>>
火柴棍等式
查看>>
EasyUI中DataGrid构建复合表头
查看>>
[转]How to compile GDB for iOS!
查看>>
redis windows安装
查看>>
python有序字典OrderedDict()
查看>>
sql 检索字符串
查看>>
常用正则表达式
查看>>
HDU 4280 最大流Dinic算法优化
查看>>
八大排序算法
查看>>
why dropout work?
查看>>
小白成长记-----python实现注册的小程序
查看>>
Codeforces Round #151 (Div. 2)总结
查看>>
cin问题 分类: c++ 2014-08-02 2...
查看>>
PHP 中文字符串相关
查看>>
开始搭建 myBatis.net + Spring.net + asp.net mvc 3 + easyUI 开发平台
查看>>
vue-cli的项目中关于axios的全局配置
查看>>
动软.Net代码生成器
查看>>
Redis使用
查看>>
json数组
查看>>