题目描述
 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
1200000 有多少个约数(只计算正约数)。
运行限制
 最大运行时间:1s
 最大运行内存: 128M
所需变量
int a = 1200000;//初始最大数
int i;//循环变量
int sum = 0;//统计,用于存储约数的个数
思路:暴力列举,从1开始到1200000,看那个能求余为0,代表是他的约数,那么我们就sum++;最终循环结束我们就得到最终答案!
 代码如下(编译器是dev,语言是C语言):
 做法一:
#include <iostream>
using namespace std;
int main()
{
  int a = 1200000,i,sum = 0;
  for(i = 1;i<=a;i++){
    if(a%i == 0){
      sum = sum + 1;
    }
  }
  cout<<sum<<endl;
  return 0;
}
 

 思路二,其实我们不难发现,虽然也是暴力列举,但是时间要大大缩减,因为我们发现到(a/2)之后,就不可能有约数了!
 所以我们只需要判断到a/2就可以了!
 代码如下(编译器是dev,语言是C语言):
 做法二:
#include <iostream>
using namespace std;
int main()
{
  int a = 1200000,i,sum = 1;
  for(i = 1;i<=(a/2);i++){
    if(a%i == 0){
      sum = sum + 1;
    }
  }
  cout<<sum<<endl;
  return 0;
}
 




















