七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" 
人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下:

数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6. 
你想知道你的另一半吗? 

Input

输入数据的第一行是一个数字T(1<=T<=500000),它表明测试数据的组数.然后是T组测试数据,每组测试数据只有一个数字N(1<=N<=500000).

Output

对于每组测试数据,请输出一个代表输入数据N的另一半的编号.

Sample Input

3
2
10
20

Sample Output

1
8
22 // 注意T和N的取值范围,直接遍历求因子和计算量过大
 #include<stdio.h>
int main()
{
int t, n, sum, i;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
sum=;
for(i=;i<n;i++)
if(n%i==)
sum+=i;
printf("%d\n", sum);
}
return ;
}

Time Limit Exceeded

// 取一半遍历还是太大
 #include<stdio.h>
int main()
{
int t, n, sum, i;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
sum=;
for(i=;i<=n/;i++)
if(n%i==)
sum+=i;
printf("%d\n", sum);
}
return ;
}

Time Limit Exceeded*2

// 用了打表,但是求因子和的算法未变
 #include<stdio.h>
int soulm[];
int main()
{
for(int j=;j<=;j++)
{
int sum=;
for(int i=;i<=j/;i++) if(j%i==) sum+=i;
soulm[j]=sum;
}
int t, n;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
printf("%d\n", soulm[n]);
}
return ;
}

Time Limit Exceeded*3

// i和j表示因子,其中j又代表不超过N的正整数.
// 减少了调用因子的次数,用循环控制积
// 注意表中的和包含了N,输出时要减去
 #include<stdio.h>
int soulm[];
int main()
{
for(int j=;j<=;j++)
for(int i=;i*j<=;i++)
soulm[i*j]+=i;
int t, n;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
printf("%d\n", soulm[n]-n);
}
return ;
}

AC

最新文章

  1. 【转】关于FLASH中图文混排聊天框的小结
  2. js常用的封装函数
  3. 托管项目到github
  4. ADO.NET---ExcuteScalar()方法复习
  5. editplus快捷键大全之editplus搜索快捷键
  6. 利用SpannableString设置文本
  7. Linux环境下配置eclipse,以及创建maven工程
  8. 浏览器的不兼容,归纳几点html编码要素
  9. java基础之 switch
  10. Leetcode#129 Sum Root to Leaf Numbers
  11. C#调用dll(C++(Win32))时的类型转换总结(转)
  12. scrapy shell 中文网站输出报错.记录.
  13. AndroidAnnotations框架配置
  14. JenKins 环境搭建 for Centos6.5
  15. kbengine简单介绍(1)
  16. PAT (Advanced Level) 1060. Are They Equal (25)
  17. Oozie调用Spark实例
  18. 服务端事件EventSource揭秘
  19. Bean property属性说明
  20. Jumpserver之设置开机自启动

热门文章

  1. cpu-io.sh
  2. MySQL 数据 导入到 SQL Service
  3. jq控制select值为某个时选中
  4. OpenCV SVM
  5. kdump内核
  6. SpringMVC参考
  7. android显示和隐藏软键盘(转)
  8. jquery获取焦点位于的元素
  9. 【scrapy】其他问题2
  10. 【Django】关于ORM的使用