081.自守数

简介: 081.自守数
#include<stdio.h>
void main()
{
    long mul,number,k,ll,kk,n;
    clrscr();
    puts("============================================================");
    puts("||    This program will find the automorphic numbers.     ||");
    puts("|| The defination of a automorphic number is: the mantissa||");
    puts("||     of a natural number's square equals to itself.     ||");
    puts("||       e.g., 25^2=625, 76^2=5776, 9376^2=87909376.      ||");
    puts("============================================================");
    printf("\n >> Please input the scale n you want to find : ");
    scanf("%ld",&n);
    printf("\n >> The automorphic numbers small than %ld are:\n\n",n);
    for(number=0;number<n;number++)
    {
        for(mul=number,k=1;(mul/=10)>0;k*=10);
                   /*由number的位数确定截取数字进行乘法时的系数k*/
        kk=k*10;      /*kk为截取部分积时的系数*/
        mul=0;        /*积的最后n位*/
        ll=10;        /*ll为截取乘数相应位时的系数*/
        while(k>0)
        {
            mul=(mul+(number%(k*10))*(number%ll-number%(ll/10)))%kk;
                 /*(部分积+截取被乘数的后N位*截取乘数的第M位),%kk再截取部分积*/
            k/=10;               /*k为截取被乘数时的系数*/
            ll*=10;
        }
        if(number==mul)         /*判断若为自守数则输出*/
            printf("%ld   ",number);
    }
    puts("\n\n >> Press any key to quit...");
    getch();
}
相关文章
|
6月前
第三大的数
第三大的数
|
10月前
|
机器学习/深度学习
1361:产生数(Produce)
1361:产生数(Produce)
|
12月前
|
人工智能 运维 物联网
数智光伏,走在希望的田野上
数智光伏,走在希望的田野上
|
C++
完美数(C++)
对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。给定一个 整数 n, 如果是完美数,返回 true;否则返回 false。
125 0
|
C++
201612-1 中间数
201612-1 中间数
51 0
201612-1 中间数
|
C++
201312-4 有趣的数
201312-4 有趣的数
49 0
201312-4 有趣的数
ZCMU - 2047: 数的读法
ZCMU - 2047: 数的读法
86 0