牛客网---约数的个数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37036984/article/details/79657961

实现代码:

#include<iostream>
using namespace std;
int main(){
    int n,m,ans,num;//n表示个数,m表示数值大小,ans表示因数个数
    while(cin>>n){
        for(int i=0;i<n;i++){
            scanf("%d",&m);
            ans=1;
            for(int i=2;i*i<=m;i++){
                num=0;
                while(m%i==0){
                    num++;//num表示相同因子的个数
                    m=m/i;
                }
                if(num>0){
                   num++;
                   ans=ans*num;
                }
            }
            if(m>1)ans=ans*2;
            cout<<ans<<endl;           
        }  
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_37036984/article/details/79657961