zoukankan      html  css  js  c++  java
  • hdu1215

    七夕节

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 3742 Accepted Submission(s): 1328
     
    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
     1 /*
     2 1.筛选法*/
     3 #include<iostream>
     4 #include<cmath>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int t,n,i,sum,j,m;
    10     cin>>t;
    11     while(t--)
    12     {
    13         sum=1;
    14         cin>>n;
    15         m=(int)sqrt( double ( n ) );
    16 
    17         for(i=2;i<=m;i++)
    18             if(n%i==0)
    19             {
    20                 sum +=i;
    21                 j=n/i;
    22                 if(i!=j)
    23                     sum +=j;
    24             }
    25         cout<<sum<<endl;
    26     }
    27     return 0;
    28 }
    29 
    30 /*这个方法我是网上学的,但不知道为什么提交不了
    31 
    32 //打表法
    33 #include<iostream>
    34 #define M 500001
    35 using namespace std;
    36 
    37 int a[M];
    38 int main()
    39 {
    40     int i,j,n,t;
    41     
    42     for(i=1;i<=500000;i++)
    43         for(j=i+i;j<=250001;j +=i)
    44             a[j] +=i;
    45     //while(scanf("%d",&t)!=EOF)
    46     scanf("%d",&t);
    47     
    48         while(t--)
    49         {
    50             cin>>n;
    51             cout<<a[n]<<endl;
    52         }
    53     
    54     return 0;
    55 }
    56 */

    这个题用一般的方法会超时,学到新的东西是

      m=(int)sqrt( double ( n ) );(将double类型的数转换为int型)
  • 相关阅读:
    Quartz.NET-2.3.3 各种 数据库配置 类别大全
    C#获取当前路径的七种方法 【转载】
    BCB 如何拦截TAB键消息
    用union 和 struct 位域操作
    表值函数
    C#中 委托和事件的关系
    关于C++ Builder Codegurad 问题的排查。
    存储过程中使用事务的“正规”写法
    C++ 中对vector<T*> 数组的查找和排序
    BCB 中 Application->CreateForm 和 New 的一个区别
  • 原文地址:https://www.cnblogs.com/mm-happy/p/3822649.html
Copyright © 2011-2022 走看看