九度题目1087:约数的个数

题目1087:约数的个数

时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:5459
解决:1642
题目描述:
输入n个整数,依次输出每个数的约数的个数

输入:
输入的第一行为N,即数组的个数(N<=1000)
接下来的1行包括N个整数,其中每个数的范围为(1<=Num<=1000000000)
当N=0时输入结束。

输出:
可能有多组输入数据,对于每组输入数据,
输出N行,其中每一行对应上面的一个数的约数的个数。

样例输入:
5
1 3 4 6 12
样例输出:
1
2
3
4
6
来源:
2011年清华大学计算机研究生机试真题

 

技巧:分半求约数
AC代码:

#include<stdio.h>
#include<string.h>
int a[1500];
int Fun(int n)
{
     int i,sum=0;
     if(n==1)
     return 1;
     for(i=1;i*i<=n;i++)
     {
        if(n%i==0)
        {
           if(n/i!=i)
           {
              sum+=2;
           }
           else
           {
               sum++;
           }
        }
     }
     return sum;
}
int main()
{
    int i,j,n,m;
    while(scanf("%d",&n)!=EOF)
    {
       for(i=0;i<n;i++)
       scanf("%d",&a[i]);
       for(i=0;i<n;i++)
       {
          printf("%d\n",Fun(a[i]));
       }
    }
    return 0;
}
时间: 2024-09-30 04:30:44

九度题目1087:约数的个数的相关文章

九度题目1008:最短路径问题

题目1008:最短路径问题 时间限制:1 秒内存限制:32 兆特殊判题:否提交:5129解决:1634 题目描述: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花 费,如果最短距离有多条路线,则输出花费最少的. 输入: 输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p. 最后一行是两个数 s,t;起点s,终点t.n和m为0时输入结束. (1n=1000, 0m100000,

九度题目1009:二叉搜索树

题目1009:二叉搜索树 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4308 解决:1919 题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树. 接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树. 输出: 如果序列相同则输出YES

九度题目1120:全排列

题目1120:全排列  时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2749 解决:669 题目描述: 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列. 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列. 输入: 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间. 输出: 输出这个字符串的所有排列方式,每行一个排列.要求字母序比较小的排列在前

九度题目1209:最小邮票数

题目1209:最小邮票数  时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1680 解决:558 题目描述:     有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值.     如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分.3分.4分即可. 输入:     有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M100.然后是一个数N,N〈20,表示有N张邮票.接下来是N个正整数,分别表 示这N张邮票的面值,且以升序排列. 输出:    

九度题目1364:v字仇杀队

题目1364:v字仇杀队 时间限制:1 秒内存限制:32 兆特殊判题:否提交:392解决:161 题目描述:          最近玄影游侠看了一部非常好看的电影,叫做<v字仇杀队>.下面是这部电影的主角v:          它想说明的一个问题就是,你现在所想的真的是你自己内心所想的吗?还是别人,社会让你这么想的?你要有自己的想法,每个人内心都有自己的准则,你没有必要按照大众的准则去想.          v整整策划了一年炸掉英国政府的大楼来推翻独裁统治,在这期间,v遇到了一个问题:如何使用

九度题目1529:棋盘寻宝

题目1529:棋盘寻宝 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:682 解决:306 题目描述: 现在有一个8*8的棋盘,上面放着64个价值不等的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于1000),一个人的初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角,请设计一个算法使其能够获得最大价值的礼物. 输入: 输入包含多个测试用例,每个测试用例共有8行8列,第i行的第j列的数字代表了该处棋盘上的礼物的价值,每两个

九度题目1088:剩下的树

题目1088:剩下的树 题目描述:     有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在 0,1,2,...,L共L+1个位置上有L+1棵树.     现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树.     可能有M(1<=M<=100)个区间,区间之间可能有重叠.现在要求移走所有区间的树之后剩下的树的个数. 输入:    

九度题目1339:ACM

题目1339:ACM(25分) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:599 解决:315 题目描述: 今年的ACM世界总决赛快要开始了,需要有一个排名算法来对每支队伍进行现场排名. ACM组委会把这个任务交给了你,相信你一定能很好地完成.  排名规则如下:通过题的数目多的队伍排名靠前,如果有多支队伍过的题的数目相同 ,则罚时少的队伍排名靠前. 输入: 输入的第一行包括一个整数N(1<=N<=100),代表参加比赛的队伍的个数.  接下来的N行每行包括一个字符串和两个整数n

九度题目1107:搬水果

题目1107:搬水果 时间限制:1 秒内存限制:32 兆特殊判题:否提交:3463解决:1081 题目描述:     在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的 水果合成一堆.每一次合并,小明可以把两堆水果合并到一起,消耗的体力等于两堆水果的重量之和.当然经 过 n‐1 次合并之后,就变成一堆了.小明在合并水果时总共消耗的体力等于每次合并所耗体力之和.     假定每个水果重量都为 1,并且已知水果的种类数和每种水果的数目,你的任务是设计出合并的