YT14-HDU-命中注定的另一半

Problem Description

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

人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下:

数字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

代码如下:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int T,N,i,Sum;
    double M;
    cin>>T;
    while (T--)
    {
        cin>>N;
        M=sqrt((double)N);             //优化程序
        Sum=1;
        for (i=2; i<=M; i++)
        {
            if (N%i==0&&i*i!=N)
                Sum+=(i+N/i);
            else if (N%i==0)
                Sum+=i;
        }
        cout<<Sum<<endl;
    }
    return 0;
}

解题思路:

简单却也坑人,题目要求很容易就理解了。最关键的一步就是优化的那一步,不然就会时间超限,可见优化是多么重要,



时间: 2024-10-10 01:03:18

YT14-HDU-命中注定的另一半的相关文章

利用Python寻找命中注定的另一半, 大家都觉得不可信, 毕竟都还没看这篇神级教程!

既然是Python程序员×××,就要用python程序员的方法. 今天我们的目标是,爬社区的美女~而且,我们又要用到新的姿势(雾)了~scrapy爬虫框架~ 1scrapy原理 在写过几个爬虫程序之后,我们就知道,利用爬虫获取数据大概的步骤:请求网页,获取网页,匹配信息,下载数据,数据清洗,存入数据库. scrapy是一个很有名的爬虫框架,可以很方便的进行网页信息爬取.那么scrapy到底是如何工作的呢?之前在网上看了不少scrapy入门的教程,大多数入门教程都配有这张图. _(:зゝ∠)_也不

从此缺席你的一生

今天,是我们在一起整整两周年的纪念日,我们曾经说要永远在一起,曾经固执的认为彼此就是自己命中注定的另一半,但是,我们在走向未来的路上,弄丢了对方. 我们在学校认识,因为夏天的一场篮球赛,我承认第一眼见到他就爱上了他,干净的脸,干净的眼睛,他的一切在我看来都是美好的,虽然不敢拿正眼看,即使是若有似无的瞄几眼也是美滋滋的,那时候的我还有点害羞,有点紧张,也是有点可爱的 人生中最幸福的事情莫过于你偷偷爱着的那个人,恰恰好对你也存在一丝好感,当他跟我表白的时候,我真的感叹命运真的太眷顾我了,多么神奇的遇

泼恋爱的冷水

文/ 沫子也 身边有两位死党,刚交往了各自的男女朋友,现热恋中. 一个恋爱前尚不知爱情者所为何物,听她自己说的,还是初恋级.据校内谣传,一个已是历经情场风风雨雨,然常大难不死者是也.好吧,我表示恭喜.他们不是第一个,也不会是最后一个. 作为这篇文章的作者,我觉得有必要声明一下自己作为一名围观者的身份. 我知道恋爱对我们这些年轻的大学生来说很重要,它从来是大学里的必修课.学校女生宿舍楼下,每晚都集结大量的男生在寒风中苦等,等各自的女朋友,那是他们内心真切的爱啊.大多看上去却也中规中矩,或有做出较出

!HDU 5305 朋友关系网一半网友问题-dfs-(暴力搜索)

题意:有n个人,m个朋友关系,现在每个人的朋友中必须一半是online一半是offline,问你有几种分配方案. 分析: 昨天一看这题就知道自己做过,无奈想不起来啊,没做出来我就知道应该上一次也没做出来,果然是.勤补题才是王道. 这题用深搜.搜索还是不太会用,这题我自己做的话估计怎么也想不到用dfs.努力啊少年. 代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm

HDU 3980 Paint Chain(博弈 SG)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3980 Problem Description Aekdycoin and abcdxyzk are playing a game. They get a circle chain with some beads. Initially none of the beads is painted. They take turns to paint the chain. In Each turn one p

poj 1198 hdu 1401 搜索+剪枝 Solitaire

写到一半才发现可以用双向搜索4层来写,但已经不愿意改了,干脆暴搜+剪枝水过去算了. 想到一个很水的剪枝,h函数为  当前点到终点4个点的最短距离加起来除以2,因为最多一步走2格,然后在HDU上T了,又发现再搜索过程中,这个估价函数应该是递减的(贪心),再加上这个剪枝就过了. #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<list> #

HDU 2502 月之数(二进制,规律)

月之数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10273    Accepted Submission(s): 6003 Problem Description 当寒月还在读大一的时候,他在一本武林秘籍中(据后来考证,估计是计算机基础,狂汗-ing),发现了神奇的二进制数. 如果一个正整数m表示成二进制,它的位数为n(不包含前

HDU 5882 Balanced Game

Balanced Game Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 508    Accepted Submission(s): 428 Problem Description Rock-paper-scissors is a zero-sum hand game usually played between two people

HDU-1171 Big Event in HDU (多重背包)

Problem Description Nowadays, we all know that Computer College is the biggest department in HDU. But, maybe you don't know that Computer College had ever been split into Computer College and Software College in 2002.The splitting is absolutely a big

HDU 1007 [Quoit Design] 分治

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1007 题目大意:N个点,求最近一对点的距离的一半. 关键思想:最傻瓜式的枚举所有点对的距离找最短 O(n^2),会TLE. 分治可以优化成O(nlogn).二分区间,考虑三种情形:点对的两点都在左区间.两点都在右区间.两点一左一右 前两种情况,可以递归地解出来,分别为d1,d2.第三种,可以依据min(d1,d2)收缩成一条带状区域(勾股定理显然). 然后对带中所有点进行处理,此时又可依据min(d