POJ 1142 (暴力加分治)
来源:互联网 发布:海康域名注册平台 编辑:程序博客网 时间:2024/06/03 08:04
【题意】:给定一个N,求一个大于N的最小的Smith Numbers,Smith Numbers是一个合数,且分解质因数之后上质因子每一位上的数字之和 等于 其本身每一位数字之和
【解题思路】 :分解质因数的时间复杂度是log,求一个数各个位数上的数字之和时间复杂度是位数,可以直接暴力,递归写非常美观。
【AC代码】
#include <stdio.h>#include <math.h>#include <iostream>using namespace std;bool isprime(int x){ int m = (int)(sqrt((double)x)+0.5); for(int i=2; i<=m; i++) if(x%i==0) return false; return true;}int get_digit_sum(int x){ int ans = 0; while(x) { ans+=x%10; x/=10; } return ans;}int cut(int x)//分治{ if(isprime(x))return get_digit_sum(x); int m = (int)(sqrt((double)x)+0.5); for(int i=m; i>1; i--) { if(x%i==0) { return cut(i)+cut(x/i); } }}int main(){ int n;// cout<<get_digit_sum(4937774)<<endl; while(~scanf("%d",&n)&&n) { while(n++) { if(!isprime(n)&&cut(n)==get_digit_sum(n)) { break; } } printf("%d\n",n); } return 0;}
1 0
- POJ 1142 (暴力加分治)
- [暴力分治]POJ 1142 Smith Numbers
- poj 3714 分治加剪枝
- poj 3714 Raid【(暴力+剪枝) || (分治法+剪枝)】
- POJ 1142 暴力!
- POJ 1753 Flip Game 暴力搜索(dfs加枚举)
- POJ 3279 Fliptile 开关灯问题(状态压缩加暴力搜索)
- [POJ]1142-Smith Numbers [暴力][容斥]
- HDU5319暴力扫加标记
- HDU - 4277(暴力加+hash)
- 凸包算法-GrahamScan+暴力+分治
- POJ-1741-treeDP+分治
- poj 3714 Raid 分治
- POJ 1741 点分治
- 【poj 1741】点分治
- poj 2114 点分治
- POJ 1741 树分治
- POJ-1741 点分治
- JQuery实现DIV其他动画效果
- JavaScript之数据类型(转)
- 步骤比较细致的 圣杯布局说明
- 160. Intersection of Two Linked Lists
- java 回调机制分为:异步回调 同步回调
- POJ 1142 (暴力加分治)
- Android----UI
- 《软件架构设计》学习笔记--0--开篇
- universal-image-loader 配置
- Apache多端口多目录配置方法
- 关于视图的生命周期
- Spark on Yarn可能遇到的问题
- C++ 虚函数表
- jsp中时间日期算法集合