首页 > 其他 > 详细

Matlab——自守数

时间:2019-05-05 12:03:18      阅读:175      评论:0      收藏:0      [点我收藏+]

要求:如果某数平方的末尾等于这个数,那么就称这个数为自守数
思路:x为待求数,n为x的十进制位数,将x平方后对10^n求模,所得数等于x,则x为自守数

 1 %普通方法
 2 tic;
 3 index = 0;
 4 data = zeros(1,100);
 5 for i = 5:100000
 6     n = 1 + floor(log10(i));
 7     if i == mod(i^2,10^n)
 8         index = index + 1;
 9         data(index) = i;
10     end
11 end
12 answer = data(1:index)
13 toc

体会向量化的威力:

1 %向量化方法(快10倍)
2 tic;
3 x = 5:100000;
4 y = mod(x.^2,10.^(1 + floor(log10(x))));
5 x(x == y)
6 toc

 

Matlab——自守数

原文:https://www.cnblogs.com/cxc1357/p/10812148.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!