hdu1164 Eddy's research I(数论:唯一分解式)

2024-06-14 03:32

本文主要是介绍hdu1164 Eddy's research I(数论:唯一分解式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一道很简单的水题有木有啊!!

我又TLE了好几次

原因是我用的是逗号表达式,今天听学长说了才知道,逗号表达式的结果就是最后一个逗号后表达式的结果

所以我的程序会一直判断正确,一直继续执行...

看到题目想都没想就用欧拉函数变形,TLE后我还以为真的是算法问题

想了想和打表差的也不多啊...

欧拉定理15ms:

#include <math.h>
#include <stdio.h>
#define MAXN 10010
int ans[MAXN];
int m, n, cnt, i;void euler_phi(int n) {m = sqrt(n+0.5);cnt = 0;for(i=2; i<=m; ++i) {if(n%i == 0) {n /= i;ans[cnt++] = i;while(n % i == 0) {n /= i;ans[cnt++] = i;}}}if(n > 1) ans[cnt++] = n;return ;
}int main(void) {while(scanf("%d", &n) != EOF) {euler_phi(n);printf("%d", ans[0]);for(i=1; i<cnt; ++i) {printf("*%d", ans[i]);}printf("\n");}return 0;
}


素数打表0ms:

#include <math.h>
#include <stdio.h>
#define MAXN 66010
int ans[20], prime[MAXN], vis[MAXN];
int m, n, cnt, i, j, c;void gen_primes(int n) {int m = (int)sqrt(n+0.5);for(i=2; i<=m; ++i) {if(!vis[i]) {for(j=i*i; j<=n; j+=i) {vis[j] = 1;}}}c = 0;for(i=2; i<=n; ++i) {if(!vis[i])prime[c++] = i;}return ;
}int main(void) {gen_primes(65536);while(scanf("%d", &n) != EOF) {cnt = 0;for(i=0; prime[i]<n; ++i) {j = prime[i];if(n%j == 0) {ans[cnt++] = j;n /= j;while(n%j == 0) {n /= j;ans[cnt++] = j;}}}if(n > 1)ans[cnt++] = n;printf("%d", ans[0]);for(i=1; i<cnt; ++i) {printf("*%d", ans[i]);}printf("\n");}return 0;
}


这篇关于hdu1164 Eddy's research I(数论:唯一分解式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059251

相关文章

MySQL逻辑删除与唯一索引冲突解决方案

《MySQL逻辑删除与唯一索引冲突解决方案》本文探讨MySQL逻辑删除与唯一索引冲突问题,提出四种解决方案:复合索引+时间戳、修改唯一字段、历史表、业务层校验,推荐方案1和方案3,适用于不同场景,感兴... 目录问题背景问题复现解决方案解决方案1.复合唯一索引 + 时间戳删除字段解决方案2:删除后修改唯一字

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

数论ZOJ 2562

题意:给定一个数N,求小于等于N的所有数当中,约数最多的一个数,如果存在多个这样的数,输出其中最大的一个。 分析:反素数定义:对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0<i<x),都有g(i)<g(x),则称x为反素数。 性质一:一个反素数的质因子必然是从2开始连续的质数。 性质二:p=2^t1*3^t2*5^t3*7

POJ2247数论

p = 2^a*3^b*5^c*7^d 求形如上式的第n小的数。 import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.math.BigInteger;import java.u

CSP-J基础之数学基础 初等数论 一篇搞懂(一)

文章目录 前言声明初等数论是什么初等数论历史1. **古代时期**2. **中世纪时期**3. **文艺复兴与近代**4. **现代时期** 整数的整除性约数什么样的整数除什么样的整数才能得到整数?条件:举例说明:一般化: 判断两个数能否被整除 因数与倍数质数与复合数使用开根号法判定质数哥德巴赫猜想最大公因数与辗转相除法计算最大公因数的常用方法:举几个例子:例子 1: 计算 12 和 18

CSP-J基础之数学基础 初等数论 一篇搞懂(二)

文章目录 前言算术基本定理简介什么是质数?举个简单例子:重要的结论:算术基本定理公式解释:举例: 算术基本定理的求法如何找出质因数:举个简单的例子: 重要的步骤:C++实现 同余举个例子:同余的性质简介1. 同余的自反性2. 同余的对称性3. 同余的传递性4. 同余的加法性质5. 同余的乘法性质 推论 总结 前言 在计算机科学和数学中,初等数论是一个重要的基础领域,涉及到整数