问题链接:HDU1164 Eddy's research I

问题描述:参见上文。

问题分析:这是一个整数因子分解问题。

前一个解法是使用计算欧拉函数的基本思想进行分解,即从小因子开始逐步分解。

这个解法则使用Eratosthenes筛选法计算必要的素数放在数组中备用。然后使用这些素数,从小因子开始逐步分解整数。由于素数事先被计算出来,只计算一次,可以重复使用,运行速度相对比较快。

程序说明:(略)。

AC的C语言程序如下:

#include <stdio.h>
#include <math.h>// Eratosthenes筛选法
void sieveofe(int p[], int n)
{int i, j;p[0] = 0;p[1] = 0;p[2] = 1;// 初始化for(i=3; i<=n; i++) {p[i++] = 1;p[i] = 0;}int max = sqrt(n);for(i=3; i<=max; i++){if(p[i]) {for(j=i+i; j < n; j+=i)    //进行筛选p[j]=0;}}// 整理数组p,将素数放在前面的单元中p[0] = 2;j = 1;for(i=3; i<=n; i++)if(p[i])p[j++] = i;
}// 利用计算得到的素数(数组p中),进行分解(超时)
void divide(int p[], int n)
{int count = 0, i = 0;while(n > 1) {while(n % p[i] == 0) {n /= p[i];if(++count == 1)printf("%d", p[i]);elseprintf("*%d", p[i]);}i++;}printf("\n");
}#define MAXN 65535
int p[MAXN+1];int main(void)
{sieveofe(p, MAXN);int n;while(scanf("%d", &n) != EOF) {divide(p, n);}return 0;
}

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

HDU1164 Eddy's research I(解法二)相关推荐

  1. HDU1164 Eddy's research I(解法二)【废除!!!】

    本文废除,参见以下参考链接: 参考链接:HDU1164 Eddy's research I[素因子分解+筛选法+欧拉函数] 问题链接:HDU1164 Eddy's research I 问题描述:参见 ...

  2. HDU1164 Eddy's research I【素因子分解】

    问题链接:HDU1164 Eddy's research I 问题描述:参见上文. 问题分析:这是一个整数因子分解问题. 采用计算欧拉函数的基本思想进行分解,即从小因子开始逐步分解. 需要注意的是,对 ...

  3. 从LeetCode 679. 24 Game--C++ 解法--二十四点 到穷举24点所有可能性-24点大全

    从LeetCode 679. 24 Game–C++ 解法–二十四点 到穷举24点所有可能性 此文首发于我的个人博客:zhang0peter的个人博客 LeetCode题解文章分类:LeetCode题 ...

  4. 隐形Euler方法的java程序_常微分方程的解法 (二): 欧拉(Euler)方法

    上一节讲了 常微分方程的三种离散化 方法:差商近似导数.数值积分.Taylor 多项式近似. 目录 §2 欧拉(Euler)方法 2.1 向前 Euler 公式.向后 Euler 公式        ...

  5. HDU1106 排序(解法二)(废除!!!)

    本文废除!!! 请点击以下的参考链接!!! 参考链接:HDU1106 排序[字符串+整数+排序]. 问题链接:HDU1106 排序. 问题简述:参见上述链接. 问题分析:这个程序的逻辑并不十分复杂,主 ...

  6. 【MPI编程】矩阵向量乘法--解法二(高性能计算)

    简述 有留心过的朋友可能会发现,其实我没写过解法一. 因为解法一就是大家最直观的感受的一种解法. 将矩阵按照行划分,之后,再每个线程都用整个向量跟这个块做内积.之后,传回来一个数值. 这里的方法二, ...

  7. 常微分方程的解法 (二): 欧拉(Euler)方法

    上一节讲了 常微分方程的三种离散化 方法:差商近似导数.数值积分.Taylor 多项式近似. 目录 §2 欧拉(Euler)方法 2.1 向前 Euler 公式.向后 Euler 公式        ...

  8. HDU1163 Eddy's digital Roots(解法二)【快速模幂+九余数定理】

    问题链接:HDU1163 Eddy's digital Roots. 问题简述:参见上述链接. 问题分析:计算n^n的数根,一要快,二要简单.使用快速模幂计算,加上数论中的九余数定理就完美了. 程序说 ...

  9. HDU1163 Eddy's digital Roots(解法二)【快速模幂+九余数定理】(废除!!!)

    本文废除,参见下述链接. 参考链接:HDU1163 Eddy's digital Roots[快速模幂+九余数定理+水题] 问题链接:HDU1163 Eddy's digital Roots. 问题简 ...

  10. c语言暴力求解法二维数组比较,【算法】搜索二维矩阵 暴力解法二分法 4种语言...

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1:输入:matrix = ...

最新文章

  1. bat 复制文件夹_Windows批量创建文件夹:用Excel和记事本这2个就够了
  2. 红旗Linux可以兼容,红旗 Linux 桌面操作系统11来了:支持国产自主CPU,全新UI风格设计,兼容面广...
  3. DCASE 2013任务1(声学场景分类)参赛作品相关信息
  4. java for遍历hashmap_Java 使用for和while循环遍历HashMap的方法及示例代码
  5. Vivado设置指定源文件进行RTL优化
  6. cas与java锁_JAVA之锁-cas
  7. debian+gnu/linux+9,Steam for Debian GNU/Linux
  8. 用于转化的XML样式表语言
  9. 刷抖音看美腿中毒后,我决定做一款抖音App
  10. 基于springboot的高校失物招领系统毕业设计源码111731
  11. Go语言开发实战课后编程题
  12. java图书借阅系统java图书管理系统java书籍借阅系统
  13. 分层导航and隐藏导航
  14. ubuntu/linux系统知识(14)ubuntu 搜狗输入法不见了,重启方法
  15. 访问计算机需要用户名密码,访问局域网电脑提示需要用户名和密码该怎么办
  16. 南阳oj 找球号(一)
  17. discuz全局数组变量 后台各项设置 完整版
  18. VScode 控制台/终端乱码
  19. phpstorm9中文输入法不好用的解决方案
  20. 中文用户名改为英文只要3步复制黏贴

热门文章

  1. docker学习笔记一:基本安装和设置容器静态ip
  2. DP(递归打印路径) UVA 662 Fast Food
  3. 34个漂亮的应用程序后台管理界面设计(系列三)
  4. MD5加密、Base64加密解密
  5. Java的表达式和运算符
  6. VMware 虚拟机安装
  7. 控制台输入聊天记录 输出到文件中保存 Day20
  8. jQuery 追加元素的方法如append、prepend、before,after(转)
  9. C#自定义RSA加密解密及RSA签名和验证封装类
  10. C++编程实践: 抽象基类