约数的个数

约数的个数

http://www.nowcoder.com/questionTerminal/04c8a5ea209d41798d23b59f053fa4d6

简单做法,就是耗时有点儿大

#include<iostream>
#include<math.h>
using namespace std;
int main(){
    int n,i;
    while(cin>>n){
        if(n==0)break;
        while(n--){
            cin>>i;int sum=0;
            int sq=sqrt(i);
            if(sq*sq==i)sum-=1;
            for(int j=1;j<=sq;j++){
                if(i%j==0){
                    sum+=2;
                }
            }cout<<sum<<endl;
        }
    }
    return 0;
}
全部评论
把if(sq*sq==i)sum-=1;改成if(sq*sq==i)sum+=1;或者直接去掉这一行代码一样可以通过测试,这是为啥
点赞 回复 分享
发布于 2020-03-22 09:44

相关推荐

评论
点赞
收藏
分享

创作者周榜

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