Problem 1165 - Smith Number

来源:互联网 发布:camera raw mac版本 编辑:程序博客网 时间:2024/05/17 01:25

http://acm.whu.edu.cn/land/problem/detail?problem_id=1165

#include<iostream>#include<cmath>using namespace std ;#define INT long long INT Sum( INT x ){INT sum = 0 ;while( x ){sum += x % 10 ;x /= 10 ;}return sum ;}bool smithnumber( INT number ){INT i = 2 ;INT temp = number ;INT tempsum = Sum( number ) ;INT sum = 0 ;while( i <= ( int )sqrt( ( double ) number ) ){if( number % i == 0 ){sum += Sum( i ) ;number /= i ;i = 2 ;}else++i ;}sum += Sum( number ) ;if( sum == tempsum && temp != number )return true ;elsereturn false ;}int main(){INT n ;while( true ){cin >> n ; if( n == 0 )break ;if( smithnumber( n ) )cout << "Yes" << endl ;elsecout << "No" << endl ;}return 0 ;}


原创粉丝点击