题意:
     给一个n(<=10Y),然后让找到一个最小的m使得n/m是一个素数.

思路:
      先用sqrt(n)的时间把所有的因子都求出来,然后在排序,枚举,就行了,这个题目这么做的话,要是仔细算一下时间复杂度估计会跪,但是题目说大数据不多,这种说法的前提下一般临街的时间复杂度都要试一试,还有就是在判断素数和枚举的时候写的别太挫,不然很可能会超时。

#include<algorithm>
#include<stdio.h>
#include<math.h>

using namespace std;

int YZ[100000] ,yzs;

void DB(int now)
{
   yzs = 0;
   int max = (int)sqrt(now);
   for(int i = 1 ;i <= max ;i ++)
   {
      if(now % i == 0) 
      {
         YZ[++yzs] = i;
         YZ[++yzs] = now / i;
      }
   }
   if(max * max == now)
   yzs --;
}

bool jude(int now)
{
   int max = (int)sqrt(now);
   for(int i = 2 ;i <= max ;i ++)
   if(now % i == 0) return 0;
   return 1;
}

int main ()
{
   int n ,i;
   while(~scanf("%d" ,&n))
   {
      if(n <= 1)
      {
         printf("0\n");
         continue;
      }
      DB(n);
      sort(YZ + 1 ,YZ + yzs + 1);
      int mk = 0;
      for(i = 1 ;i <= yzs && !mk;i ++)
      {
         int now = n / YZ[i];
         if(jude(now))
         {
            printf("%d\n" ,YZ[i]);
            mk = 1;
         }
      }
      if(!mk) printf("0\n");
   }
   return 0;
}
            

hdu5108枚举因子求最小的m相关推荐

  1. UVA11889(给出lcm(A,B)=C中的AC求最小的B)

    题意:      给出最小公倍数LCM(A,B) = C中的A,C求最小的B. 思路:       lcm=(a*b)/gcd,把等号两侧同时除以a得到lcm/a=b/gcd左侧是已知的,右侧的gcd ...

  2. 关于扩展欧几里得求最小正整数解

    关于扩展欧几里得求最小正整数解 //扩展欧几里得算法求最小正整数解 这里讲的是欧几里得,不是那个洗澡测浮力的阿基米德 . 什么是欧几里得算法: 扩展欧几里得算法是用来求解一类特定的不定方程的,形如ax ...

  3. acm -(并查集、启发式合并、gcd、枚举因子)2020 China Collegiate Programming Contest Changchun Onsite K. Ragdoll

    传送门 本题考虑直接对每个iii求出所有满足ij=gcd(i,j)i^j=gcd(i,j)ij=gcd(i,j)的jjj,然后存在ggg数组中,对于查询修改操作维护一个并查集即可,合并的时候采用启发式 ...

  4. 2019 CCPC秦皇岛 J 题 MUV LUV EXTRA【KMP 求最小循环节】

    题意: 原题意是给出一个有理数的前一部分,求这个有理数的无限循环部分是什么.有一个值来评估猜的准确度.转换一下就成了下面的题意: 给出一个字符串s,有某一个子串,设p为该子串在s的某个后缀中的匹配长度 ...

  5. 试除法求最小N个素数之二

    Trial division 试除法求最小N个素数是一个经典的算法. 这个算法不同于前一个版本<试除法求最小N个素数>的方法,也是一个比较快速的方法. 这个算法考虑以下两点: 1.偶数中只 ...

  6. 一种更简单的求最小平方均值函数(MSE)的方法 -- 梯度下降法。

    在上一篇博客中我们通过解析解法算出来了 但是上面公式中的对称阵是N维乘以N维的,复杂度为O(n*n*n),虽然很精准但是很慢. 为此我们引入梯度下降法 我们首先大致画出MSE的图像,MSE是一个开口向 ...

  7. hdu3491 最小点割集(无向图求最小点割集通用方法)

    无向图最小点割集,确定起点S,终点T.每个点都有自己的点权值vi,求最小点权和的割点集,使得S无法到达T. 解法:将每个点拆分为两个点v和v',之间的权值为vi(单向边),将原图中的每条边赋权值为IN ...

  8. 求最小码距 (10 分)

    求最小码距 (10 分) 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 题目描述 计算机组成原理老师给小明出了一道求最小码距的题目, 有以下由1个字节组成的合法编码集{0xA ...

  9. 7-3 求最小码距 (10 分)

    计算机组成原理老师给小明出了一道求最小码距的题目, 有以下由1个字节组成的合法编码集{0xA9,0xC7,0xDF,0xBE},该编码集的最小码距是__ 小明知道码距,也知道最小码距的概念.码距是指 ...

最新文章

  1. 《Adobe Premiere Pro CC经典教程(彩色版)》——2.2 建立项目
  2. 【bzoj5085】最大(二分+乱搞)
  3. 宁波大学计算机网络,宁波大学计算机网络TCP与UDP题目
  4. C和C++混合编程(__cplusplus使用)
  5. 11、进入保护模式-V
  6. 第三章:使用email-ext替换Jenkins的默认邮件通知
  7. 一个 8 岁的“前端老人”
  8. SqlServer中 SET DATEFIRST
  9. Dubbo视频教程《基于Dubbo的分布式系统架构视频教程》
  10. 女孩都喜欢什么类型的男生?
  11. 图片怎么缩小到300k?如何将图片缩小到300k以内?
  12. 高并发场景下秒杀系统的设计思路
  13. 【报错解决】为Blender构建Python模块
  14. pandas.melt()使用介绍(宽表变长表)
  15. 假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10. 试为这8个字母设计赫夫曼编码.
  16. 【Try to Hack】john哈希破解工具
  17. java模糊查询代码_Java模糊查询方法详解
  18. Dozer 时间转换问题
  19. 8.数字魔方问题:在3×3的棋盘上摆放1~9数字,使每行、每列及对角线数字之和均相等。
  20. 公安警务指挥一张图三维电子沙盘可视化地理信息大数据系统

热门文章

  1. CentOS6.3 下启动Oracle service和listener
  2. 那些年,我在西安的“遇见”(一)
  3. TOMCAT startup.bat
  4. 安装Synchronization service (Project Server 2007) 时出现 MSMQ 错误的解决
  5. [导入]日志 20071211(WCF,实验室产品)
  6. .net Redis使用公共方法引用CSRedisCore
  7. javaee_SSH
  8. HDU 1711 Number Sequence(算法验证)
  9. 使用GruntJS构建Web程序 (1)
  10. Redis_基本类型介绍和指令___2