SICAU-OJ: A|B
2024-09-01 19:32:50
A|B
题意:
给出一个整数n(1<=n<=10100),求Σd(d满足d可以整除n),同时保证不存在x^2有x^2可以整除n。
另外,n的质因子满足小于等于1000。
题解:
这题是我第一道用python做的题...毕竟大数C写起来还是挺麻烦的。
根据唯一分解定理我们知道n=p1^a1*p2^a2*....*pn^an,再来看条件,我们知道这里的p1...pn都是小于等于1000的。
另外,由不存在x^2可以整除n可知:a1=a2=...=an=1。
倘若at>1,那么一定有一个x^2是n的因子。毕竟n是由这些数给乘起来的。
最后我们统计答案时,计算(p1+1)*(p2+1)*....*(pn+1)就行了,可以十分方便地计算出所有的情况。
代码如下:
prim=[]
vis=[]
for i in range(1000):vis.append(0)
for i in range(2,1000):
if(not vis[i]):
prim.append(i)
for j in range(i*i,1000,i):
vis[j]=1;
t=int(input())
while(t):
t-=1
need=[]
sum=1
n=int(input())
l = len(prim)
for i in range(l):
if(n%prim[i]==0):
need.append(prim[i])
l=len(need)
for i in range(l):
sum*=(need[i]+1)
print(sum)
最新文章
- 【JS】字符串操作
- Tensorflow word2vec编译运行
- pip install tushare
- C#操作access数据库
- 提高Axure设计效率的10条建议 (转)
- 一、HTML和CSS基础--HTML+CSS基础课程--第4部分
- vi编辑器基本用法介绍
- jQuery选择器总结 转
- 敏捷冲刺每日报告四(Java-Team)
- Tomcat不需要输入项目名便可访问项目(直接用域名或者ip)
- 自学Linux Shell16.2-函数中使用变量
- PHP实现大转盘抽奖算法
- C#编程(三十八)----------运算符
- 【elasticsearch】关于elasticSearch的基础概念了解【转载】
- django学习2 视图和模板
- windows下启动某程序提示缺失**.dll文件的处理方法
- 服务注册发现Eureka之一:Spring Cloud Eureka的服务注册与发现
- #region 常量和静态变量静态类readonly
- 【谷歌浏览器】在任意页面运行JS
- android菜鸟学习笔记19----Android数据存储(三)XML文件的解析及序列化