题解 | 约数的个数

约数的个数

https://www.nowcoder.com/practice/04c8a5ea209d41798d23b59f053fa4d6

#include <iostream>
#include<math.h>
using namespace std;
long non(long n)
{ long sum=0;
if(n==1)
return 1;
   for(int i=1;i*i<=n;i++)
   {
       

        if(n%i==0&&i*i!=n)
        sum=sum+2;
        if(i*i==n)
        sum=sum+1;
        
        
   }
   return sum;
   
}

int main() {
    long n;
    long ary[1000];
    while (cin >> n) { // 注意 while 处理多个 case
        for(long i=0;i<n;i++)
        {
            cin>>ary[i];
        }
        for(int i=0;i<n;i++)
        {
            cout<<non(ary[i])<<endl;
        }

    }
}
// 64 位输出请用 printf("%lld")

如果x是n的约数,n/x必定也是x的约数,故根号n以前每找到一个约数等于找到两个。x从1开始,直到根号n。如果根号n为整数,则只提供一个约数,大于根号n的约数在前面已经被计算过

全部评论

相关推荐

在打卡的大老虎很想潜...:你在找实习,没啥实习经历,技术栈放前面,项目多就分两页写,太紧凑了,项目你最多写两个,讲清楚就行,项目背景。用到的技术栈、亮点、难点如何解决,人工智能进面太难了,需求少。你可以加最新大模型的东西
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务