博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CCF NOI1024 因子个数
阅读量:6184 次
发布时间:2019-06-21

本文共 709 字,大约阅读时间需要 2 分钟。

问题链接


时间限制: 1000 ms  空间限制: 262144 KB

题目描述

  对于任意给定的一个正整数,计算其因数个数。

  输入样例:
  6
  输出样例:
  4
  说明:
  1、2、3、6都是6的因数。因此,输出4。

输入

  输入正整数N。

输出

  输出N的因子个数。

样例输入

6

样例输出

4

数据范围限制

  1<=N<2^31

提示

  1、2、3、6都是6的因数。因此,输出4。


问题分析

  用穷举法进行计算,尽量减少穷举的次数。

  若a*b=n且a<b,则a和b都是n的因子,所以只需要用1到sqrt(n)进行试探即可。同时需要注意,若a*a=n则a为n的因子(只计数1次);若a*b=n且a!=b则需要计数2次。

程序说明

  (略)

要点详解
  • 没有找到好方法就只好用穷举法。
  • 像计算平方根这样的计算,要尽量少计算。


100分通过的程序:

#include 
#include
int main(void){ int n, end, count, i; scanf("%d", &n); count = 0; end = sqrt(n); for(i=1; i<=end; i++) if(n % i == 0) count += 2; if(end * end == n) count -= 1; printf("%d\n", count); return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7563920.html

你可能感兴趣的文章
技术人,你的简历够技术么?
查看>>
安装Lua (Mac环境下)
查看>>
P3990 [SHOI2013]超级跳马
查看>>
IIS发布网站,报错404找不到文件或者目录
查看>>
python 使用生成器 来完成 监听文件输入的例子
查看>>
[bzoj 3670][Noi2014]动物园
查看>>
CF993E Nikita and Order Statistics
查看>>
Dynamic Rankings——带修改区间第k大
查看>>
CentOS6 vnc服务安装配置
查看>>
第四周作业
查看>>
数列分块入门(最后一个难啊)
查看>>
解方程 sqrt(x-sqrt(n))+sqrt(y)-sqrt(z)=0的所有自然数解
查看>>
JFrame 桌面右下角弹窗
查看>>
自动化测试系列:Selenium UI自动化解决iframe定位问题
查看>>
MySql计算两个日期的时间差函数
查看>>
安装Ubuntu虚拟机详解
查看>>
未来的移动领域就是android的世界了
查看>>
modifiers标量调节器插件的定义和使用
查看>>
永久生效环境变量
查看>>
CF 49E Common ancestor
查看>>