【mycodeing】因子之和(c++实现)

如果一个数的非自身因子之和等于它本身,输出true。比如6的非自身因子有1,2,3,1+2+3=6,符合条件。
(是恒生的笔试题,之后做发现好简单……)
注意求因子的方法,从1开始挨个试,只需要试到sqrt(n)。另外开平方根的计算需要花费时间,因此需要放到for循环条件判断外边。

#include <iostream> 
#include <cmath>
 
using namespace std;

bool isAnswer(int n){
	int a = 0;
	int sq = sqrt(n);
	for(int i=1;i<=sq;i++){
		if(n%i==0){//整除
		 	a+=i;//把所有因子相加
			 if(i!=1&&a!=sq){
			 	a+=(n/i);
			 } 
		}
	}
	if(a==n)
		return true;
	else
		return false; 
}
int main(){
	int n;
	cin >> n;
	cout << isAnswer(n);
}
发布了26 篇原创文章 · 获赞 3 · 访问量 9640
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览