第十一届蓝桥杯大赛第二场省赛赛题 C++ 大学C组
试题A:约数个数
问题描述
对于一个整数,能整除这个整数的数称为这个数的约数。 例如:1,2,3,6都是6的约数。 请问78120有多少个约数。
算法设计
这里使用开平方减少程序复杂度,但要注意完全平方数的存在。
#include
#include
int main(){
using namespace std;
int num = 78120;
int m = sqrt(num);
int count = 0;
for (int i = 1; i <= m; ++i) {
if(num % i == 0){
count += 2; //约数一般是一对,所以递增2
}
}
if( m * m == num){
count --
共有 0 条评论