题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
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;
}