sqrt函数

下面有一些数 请看:

1 4 9 16 25

这些数在数学上叫完全平方数。可能有些人不知道什么叫完全平方数。接下来让我来介绍完全平方数。

若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。完全平方数是非负数,而一个完全平方数的项有两个。

sqrt函数又是什么呢?

sqrt函数在数学上叫作开方。

如 4开方等于2 9开方等于3

在编程上如果要用到sqrt函数要这么写 sqrt(n)

而在编程里往往需要用到sqrt函数 如这题

第2题     因数和2 查看测评数据信息

给你一个整数N,求它的所有因数的和。比如N=12,和为1+2+3+4+6+12=28。

输入格式

只一行,一个整数N。(1≦N≦2,000,000,000)

输出格式

只一行,一个整数:N的所有因数之和。

输入/输出例子1

输入:

12

输出:

28

样例解释

如果用下面方法

#include<bits/stdc++.h>
using namespace std;
int n,s=0;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        if(n%i==0)s=s+i;
    }
    cout<<s;
    return 0;
}

这种暴力枚举拿不到满分,这时候你要想一个因数找到一个那就可以找着另外一个因数所以只需找他的开方所以只需改一下。

#include<bits/stdc++.h>
using namespace std;
int n,s=0;
int main(){
    cin>>n;
    for(int i=1;i<=sqrt(n);i++){
        if(n%i==0){

         s=s+i;

        s=s+n/i;

}
    }
    cout<<s;
    return 0;
}

但这样做不能满分如果n是完全平方数呢?那就要多加一个判断。

#include<bits/stdc++.h>
using namespace std;
int n,s=0;
int main(){
    cin>>n;
    for(int i=1;i<=sqrt(n);i++){
        if(n%i==0){

         s=s+i;

        s=s+n/i;

}

if(i*i==n)

s=s-i;
    }
    cout<<s;
    return 0;
}

这样这个程序就可以满分了。

下次想让我写什么函数尽管评论

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值