当前位置: 首页 > news >正文

HDU 1299 基础数论 分解

给一个数n问有多少种x,y的组合使$\frac{1}{x}+\frac{1}{y}=\frac{1}{n},x<=y$满足,设y = k + n,代入得到$x = \frac{n^2}{k} + n$,也就是求n^2的因子数量 

/** @Date    : 2017-09-08 10:45:12
  * @FileName: HDU 1299 数论 分解.cpp
  * @Platform: Windows
  * @Author  : Lweleth (SoungEarlf@gmail.com)
  * @Link    : https://github.com/
  * @Version : $Id$
  */
#include <bits/stdc++.h>
#define LL long long
#define PII pair<int ,int>
#define MP(x, y) make_pair((x),(y))
#define fi first
#define se second
#define PB(x) push_back((x))
#define MMG(x) memset((x), -1,sizeof(x))
#define MMF(x) memset((x),0,sizeof(x))
#define MMI(x) memset((x), INF, sizeof(x))
using namespace std;

const int INF = 0x3f3f3f3f;
const int N = 1e5+20;
const double eps = 1e-8;

int pri[N];
int vis[N];
int c = 0;
void prime()
{
	MMF(vis);
	for(int i = 2; i < N; i++)
	{
		if(!vis[i])
			vis[i] = 1, pri[c++] = i;
		for(int j = 0; j < c && i * pri[j] < N; j++)
		{
			vis[i*pri[j]] = 1;
			if(i % pri[j] == 0)
				break;
		}
 	}
}


int main()
{
	prime();
	int T;
	cin >> T;
	int icase = 0;
	while(T--)
	{
		LL n;
		scanf("%lld", &n);
		LL t = n * n;//直接对n^2分解不对?
		LL cnt = 1;
		for(int i = 0; i < c && pri[i] * pri[i] <= n; i++)
		{
			if(n % pri[i] == 0)
			{
				LL tmp = 0;
				while(n % pri[i] == 0 && n)
					n /= pri[i], tmp++;
				cnt *= tmp*2+1;
			}
		}
		if(n > 1)
			cnt *= 3;
		cnt = (cnt + 1) / 2;
		printf("Scenario #%d:\n", ++icase);
		printf("%lld\n\n", cnt);
	}
    return 0;
}

转载于:https://www.cnblogs.com/Yumesenya/p/7496429.html

相关文章:

  • simpledateformat格式_2020 年,你还在使用 Java 中的 SimpleDateFormat 吗?
  • 人生苦短我学python谁说的_人生苦短,我学python
  • [PY3]——logging
  • python笔记视频_python视频笔记之三(循环和函数)
  • 洛谷P3003 [USACO10DEC]苹果交货Apple Delivery
  • linux添加ip白名单_为什么IP代理需要授权?
  • 事件对象练习
  • yii beforeaction 如何赋值全局变量_讲讲 js 的内存泄漏、如何监控和分析
  • Java基础总结--变量、运算符总结
  • boolean mybatis_mybatis的环境搭建以及问题
  • 软件工程实践2017第二次作业
  • python django步骤_python - django (创建到运行流程)
  • CODEVS——T 1004 四子连棋
  • linux查看显卡信息_如何查看linux系统的相关信息
  • 华宇笔试题总结
  • angular组件开发
  • CSS中外联样式表代表的含义
  • JavaScript HTML DOM
  • Java到底能干嘛?
  • Java深入 - 深入理解Java集合
  • js递归,无限分级树形折叠菜单
  • JS基础之数据类型、对象、原型、原型链、继承
  • LeetCode29.两数相除 JavaScript
  • Python十分钟制作属于你自己的个性logo
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • REST架构的思考
  • Sass 快速入门教程
  • spring学习第二天
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 构建二叉树进行数值数组的去重及优化
  • 算法系列——算法入门之递归分而治之思想的实现
  • 学习Vue.js的五个小例子
  • 一文看透浏览器架构
  • 硬币翻转问题,区间操作
  • (4)logging(日志模块)
  • (70min)字节暑假实习二面(已挂)
  • (C#)一个最简单的链表类
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (十六)串口UART
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .apk文件,IIS不支持下载解决
  • .net 获取url的方法
  • .net 设置默认首页
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • /etc/fstab和/etc/mtab的区别
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [20190113]四校联考
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [codevs] 1029 遍历问题