day 24 自守数

1.有数num; 

2.经过分析,若num是自守数,是i位数,那么满足

num*(num-1)%1ei==0;

3.输出所有num;

#include<iostream>

using namespace std;

int g(int num)
{
int flag=1,Num=num;
int t[10],T[10],mut[10];
//cout<<num<<endl;
t[0]=1;
T[0]=num%10;
mut[0]=T[0]*Num;
while(num/10){
num/=10;
t[flag]=t[flag-1]*10;
T[flag]=num%10;
mut[flag]=T[flag]*Num*t[flag];
flag++;
// printf("flag=%d,t[flag-1]=%d,T[flag-1]=%d,mut[flag-1]=%d\n",flag,t[flag-1],T[flag-1],mut[flag-1]);
}
flag--;
int sum=0;
for(int i=0;i<=flag;i++){
sum+=mut[i]%(t[flag]*10);
// cout<<"sum="<<sum<<endl;
}
// printf("flag=%d\n",t[flag]*10);
// cout<<" end "<<sum%(t[flag]*10);
return sum%(t[flag]*10);
}
int main(){
for(int num=1;num<=100000;num++){
if(num==g(num)){printf("%d\n",num);}
}//g(1);g(10);g(11);g(101);
return 0;
}

 

posted @ 2023-05-10 22:50  The-rich  阅读(20)  评论(0)    收藏  举报