zoukankan      html  css  js  c++  java
  • 数学题 求因子个数

    小C的倍数问题

    Accepts: 1990
    Submissions: 4931
    Time Limit: 2000/1000 MS (Java/Others)
    Memory Limit: 32768/32768 K (Java/Others)
    Problem Description

    根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数。反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数。

    现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数。

    Input

    第一行一个正整数T表示数据组数(1<=T<=20)。

    接下来T行,每行一个正整数P(2 < P < 1e9),表示一组询问。

    Output

    对于每组数据输出一行,每一行一个数表示答案。

    Sample Input
    1
    10
    
    Sample Output
    3

    #include<cstdio>
    #include <cmath>
    using namespace std;
    int num(int n){ //返回的是因子总数
        int count=2;
        for(int i=2;i<=sqrt(n);i++){
            if(n%i==0){
                if(i==sqrt(n) && n/i==i){ //如果两因子相同,则只加1
                     count++;
                }
                else count+=2;
            }
        }
        return count;
    }
    int main(){
        int n,T;
        for(scanf("%d",&T);T--;){
            scanf("%d",&n);
            if(n==2) puts("1");
            else printf("%d
    ",num(n-1));
        }
    }
  • 相关阅读:
    015_stdc_C语言
    014_stdc_C语言
    013_stdc_C语言
    012C语言
    011_stdc_C语言
    010_stdc_C语言
    009_stdc_C语言
    008_stdc_C语言
    40.委托
    39.多线程
  • 原文地址:https://www.cnblogs.com/mfys/p/7350878.html
Copyright © 2011-2022 走看看