admin管理员组文章数量:1130349
Identify Smith Numbers
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cmath>
using namespace std;
long long int f(long long int n){
long long int sum=0;
while(n){
sum+=n%10;
n/=10;
}
return sum;
}
int ff(long long n){
for (int i=2;i<=sqrt(n);i++){
if (n%i==0){
return 0;
}
}
return 1;
}
int a[1000];
int main(){
long long int n;
scanf("%lld",&n);
if (ff(n)){
printf("0\n");
}
else
{
long long sum=f(n);
long long m = n;
long long int xx=0;
for(int i = 2; i < m;)
{
if(ff(i) && n % i == 0)
{
a[xx++] = i;
n = n / i;
if(ff(n))
{
a[xx++] = n;
break;
}
}
else
i++;
}
long long aa = 0;
for(int i = 0; i < xx; i++)
{
while(a[i])
{
aa = aa + a[i] % 10;
a[i] /= 10;
}
}
if (sum==aa){
printf("1\n");
}
else{
printf("0\n");
}
}
return 0;
}
Identify Smith Numbers
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cmath>
using namespace std;
long long int f(long long int n){
long long int sum=0;
while(n){
sum+=n%10;
n/=10;
}
return sum;
}
int ff(long long n){
for (int i=2;i<=sqrt(n);i++){
if (n%i==0){
return 0;
}
}
return 1;
}
int a[1000];
int main(){
long long int n;
scanf("%lld",&n);
if (ff(n)){
printf("0\n");
}
else
{
long long sum=f(n);
long long m = n;
long long int xx=0;
for(int i = 2; i < m;)
{
if(ff(i) && n % i == 0)
{
a[xx++] = i;
n = n / i;
if(ff(n))
{
a[xx++] = n;
break;
}
}
else
i++;
}
long long aa = 0;
for(int i = 0; i < xx; i++)
{
while(a[i])
{
aa = aa + a[i] % 10;
a[i] /= 10;
}
}
if (sum==aa){
printf("1\n");
}
else{
printf("0\n");
}
}
return 0;
}
版权声明:本文标题:Identify Smith Numbers 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1763735428a2958842.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论