hdu 5108 最小的M使N/M为素
来源:互联网 发布:中路火男打js好打吗 编辑:程序博客网 时间:2024/05/16 19:17
http://acm.hdu.edu.cn/showproblem.php?pid=5108
输入一个正整数N,然后求出一最小的正整数M使得 N/M 是一个素数
显然N/M应该是N的最大质因子,这样才能使得M最小。暴力找到最大质因子后用N除就能算出M了。
唯一无解的情况是N=1。
#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <string>#include <queue>#include <map>#include <iostream>#include <sstream>#include <algorithm>using namespace std;#define RD(x) scanf("%d",&x)#define RD2(x,y) scanf("%d%d",&x,&y)#define RD3(x,y,z) scanf("%d%d%d",&x,&y,&z)#define clr0(x) memset(x,0,sizeof(x))#define clr1(x) memset(x,-1,sizeof(x))#define eps 1e-9const double pi = acos(-1.0);typedef long long LL;const int inf = 1000000000;const int maxn = 1e5+5;int p[maxn],pr[maxn],cnt;int init(){ clr0(p); for(int i = 2;(LL)i * (LL)i <= inf;++i){ if(!p[i]){ for(int j = i + i;(LL)j * (LL)j <= inf;j += i) p[j] = 1; } } cnt = 0; for(int i = 2;i * i <= inf;++i){ if(!p[i]){ pr[cnt++] = i; } }}bool isprime(int x){ for(int i = 2;i * i <= x;++i){ if(x%i == 0) return false; } return true;}int work(int n){ int m = n; if(n <= 1) return 0; for(int i = 2;i * i <= n;++i){ while(i*i <= n && n%i == 0) n/=i; } return m/n;}int main(){ //init(); //cout<<cnt; int n; while(~RD(n)){ printf("%d\n",work(n)); } return 0;}
0 0
- hdu 5108 最小的M使N/M为素
- 给定正整数 N, 求使N < 2^m 成立的最小m(C语言版)
- 有 n 个无序整数( n>10000), 则找出其中最大的 M 个数字( 5<M<10), 所需要的最小时间复杂度为:
- 已知n,计算1+2+3+……+m>=n的最小m
- 输入一个正整数n,输出一个最小正整数m,使得m的各位乘积等于n
- HDU 4349 Xiao Ming's Hope(Lucas定理、C[n][m]为奇数的个数)
- 【HDU 2225】【数学题 构造】【求不大于sqrt(n)的分数, 分母最大为m】
- 求给定M个数组合构成N的最小倍数
- 恰好有N个因子的最小正整数M
- HDU 5601:N*M bulbs
- hdu 5601 N*M bulbs
- HDU 5601 N*M bulbs
- HDU 5601 N*M bulbs
- M*N的矩阵
- m的n次方
- 输入n,m,从1-n个数字里输出和为m的组合
- 输入m和n,从1,2,3...n中找出和为m的组合
- STL--F - Sequence(n*m->求最小的前m个和)
- c++双向链表的实现_1.0版本
- static与final详解与陷阱
- egt、GetHub更新本地No value for key branch.master.merge found in configuration
- Windows服务简介(转)
- HDU 1412 {A} + {B}(set容器)
- hdu 5108 最小的M使N/M为素
- java proxy 代理
- Oracle dbms_stats
- 从稀疏表示到低秩表示(五)
- Fedora 20 为内核建立可用的源码树
- 缩略图的生成与添加水印
- 文件大小格式化(JS)
- 小白一键重装系统软件下载到99%不动无法安装
- HDU 1201 18岁生日