自守数(难度:半颗星)

迈不过友情╰ 2022-06-15 09:38 333阅读 0赞

问题描述:

如果一个数n是一个自守数,它必须满足如下条件:

  1. 如果n有k位数构成,那么n的平方的末尾k位数必须和n相等

例如:
25是一个自守数,因为
25 * 25 = 625,并且25等于625后面两位25

输出【1,10000】范围内的自守数。

参考代码:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i, num, temp, factor;
  5. for (i = 1; i <= 10000; i++)
  6. {
  7. temp = i;
  8. num = i * i;
  9. factor = 1;
  10. while (temp)
  11. {
  12. factor *= 10;
  13. temp /= 10;
  14. }
  15. if (i == num % factor)
  16. printf("%d\n", i);
  17. }
  18. return 0;
  19. }

运行结果:

这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,333人围观)

还没有评论,来说两句吧...

相关阅读