zoukankan      html  css  js  c++  java
  • 约数的个数

    题目描述

    输入n个整数,依次输出每个数的约数的个数

    输入描述:

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

    输出描述:

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

    输入

    复制
    5
    1 3 4 6 12
    

    输出

    复制
    1
    2
    3
    4
    6

    代码:
    #include <iostream>
    #include <string>
    #include <vector>
    #include <cmath>
    using namespace std;
    int func(int num)
    {
        if (num==0)
        {
            return 0;
        }
        int r = (int)sqrt(1.0 * num);
        int sum = 0;
        if (r * r == num)
        {
            sum++;
            r--;
        }
        for (int i = 1; i <= r; i++)
            if (num % i == 0)
            {
                sum += 2;
            }
        cout << sum << endl;
        return 0;
    
        
    }
    int main()
    {
        int n;
        cin >> n;
        vector<int> num;
        num.resize(n);
        for (int i = 0; i < n; i++)
        {
            cin >> num[i];
        }for (int i = 0; i < n;i++)
        {
            func(num[i]);
        }
         
    
        return 0;
    }
    View Code
  • 相关阅读:
    二维树状数组(模板)
    3033太鼓达人
    2503相框
    Ant Trip(画几笔)
    [ZJOI2004]嗅探器
    [USACO06JAN]冗余路径Redundant Paths(缩点)
    P3806 【模板】点分治1
    P4149 [IOI2011]Race
    P2634 [国家集训队]聪聪可可
    P4178 Tree
  • 原文地址:https://www.cnblogs.com/hequnwang/p/10534369.html
Copyright © 2011-2022 走看看