poj1142_poj是什么意思

poj1142_poj是什么意思poj1142题解


Jetbrains全系列IDE稳定放心使用

题目链接:http://poj.org/problem?id=1142

题意:找出smith数。smith数是一个数的各个位之和等于其因子的各个位之和。

解题思路:从2一直向上扫描,遇到能除的就除,求出数字的质因数

import java.util.Scanner;

public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		while(n != 0){
			get(n);
			n=sc.nextInt();
		}
		sc.close();
	}

	private static void get(int n) {
		while(true){
			n++;
			if(!isPrim(n)){
				if(isSmithNumber(n)){
					System.out.println(n);
					break;
				}
			}
		}
	}

	private static boolean isSmithNumber(int n) {
		int k=n;
		int sum = 0;
		int total = 0;
		while(k/10 != 0){
			sum += k % 10;
			k = k / 10;
		}
		sum += k;
		for(int i =2; i <= (int)Math.sqrt(n);){
			if(n % i == 0){
				n=n / i;
				total += getSum(i);
			}
			else
				i++;
		}
		total += getSum(n);
		if(sum == total)
			return true;
		return false;
	}

	private static int getSum(int i) {
		int sum = 0;
		int k=i;
		while(k / 10 != 0){
			sum += k % 10;
			k = k / 10;
		}
		sum += k;
		return sum;
	}

	private static boolean isPrim(int n) {
		int m = (int) Math.sqrt(n);
		if(n == 2)
			return true;
		if(n%2 == 0)
			return false;
		for(int i = 3; i <= m; i = i + 2){
			if(n % i == 0)
				return false;
		}
		return true;
	}
	
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187160.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何判断二极管的极性_二极管的反向饱和电流

    如何判断二极管的极性_二极管的反向饱和电流三极管饱和状态的判断比如上图如何判断电路正常状态下(麦克风无声音)Q1饱和而不是Q2饱和?首先看Q1:因为R2=100R3所以电流的话R3是100倍的R2,但是8050放大系数是200倍以上,说明此时三极管已经无力再放大这个基极电流了,三极管处于饱和状态而后边Q2R3是R4的30倍左右,很明显电流的话根本就用不上HFE放大系统,处于截止状态…

    2022年9月11日
  • RewriteCond指令格式

    RewriteCond指令格式RewriteCond指令格式语法:RewriteCondTestStringCondPattern[flags]RewriteCond指令定义一条规则条件。在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这些条件也满足时规则才被应用于当前URL处理。1、TestString是一个纯文本的字符串,除

    2022年6月13日
  • 游戏行业,室内设计,哪个3d建模师更有前景?工资是不是很高啊

    游戏行业,室内设计,哪个3d建模师更有前景?工资是不是很高啊游戏建模职业分类及发展:进入游戏建模行业你可以选择不同的发展方向,比如:(1)手绘3D美术设计师:制作纯手绘风格游戏的所有3D物品如:角色、道具、建筑、山体;(2)次世代3D美术设计师:制作写实次世代风格游戏的所有3D物品,如:角色、道具、建筑。(3)关卡设计师:根据游戏风格要求,使用模型资源,搭建3D游戏世界(4)模型师:制作3D打印、影视动画中的所有模型。如:角色、道具、建筑、山体。次世代美术设计师做什么?次世代游戏:“次世代游戏”指代和同类游戏相比下更加先进的游戏.

    2022年5月19日
  • delphi有办法旋转或翻转图片么?

    delphi有办法旋转或翻转图片么?

    2021年7月29日
  • gitHub新手教程

    gitHub新手教程gitHub新手教程

    2022年4月24日
  • 目标检测与图像分割的区别_语义分割和实例分割最新论文

    目标检测与图像分割的区别_语义分割和实例分割最新论文计算机视觉的任务很多,有图像分类、目标检测、语义分割、实例分割和全景分割等,那它们的区别是什么呢?1、ImageClassification(图像分类)图像分类(下图左)就是对图像判断出所属的分类,比如在学习分类中数据集有人(person)、羊(sheep)、狗(dog)和猫(cat)四种,图像分类要求给定一个图片输出图片里含有哪些分类,比如下图的例子是含有person、sheep和do…

    2022年8月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号