西安交大数学实验报告.docVIP

  • 27
  • 0
  • 约3.45千字
  • 约 9页
  • 2018-12-30 发布于广东
  • 举报
数学实验报告 题目:四种特殊自然数编程 作者: 学号: 班级: 题目:四种特殊自然数编程,计算出所有的水仙花数,完美数,亲和数,回文数。 环境:Windows系统 PC MATLAB软件 问题分析 水仙花数:若一个自然数的各位数字的立方和等于该数本身,则称该自然数为水仙花数。 由水仙花数的定义可知,首先要将一个三位数的百位,十位,个位三个数字分离出来, 同时用for-end循环语句对自然数赋值,然后将三个数字分别赋值给三个变量(如a,b,c),用if条件语句选出符合水仙花数定义的自然数即可。 完美数:对于一个自然数而言,若它的真因子之和小于数本身,则称该数为盈数,若它的真因子之和大于数本身,则称该数为亏数,若它的真因子之和等于数本身,则称该数为完美数(完全数)。(它的两个特点:它可以写成若干连续自然数之和;它的全部因数的倒数和都是2) 首先考虑到要输出一系列满足条件的自然数,可以使用for-end循环语句,在一定范围内(在此我们考虑2~10000内的自然数)对每一个自然数进行完美数的验证,可以赋值i=2:1:10000,然后就要找出每一个自然数的所有真因子,在此又需要用for-end语句找出一个自然数的所有真因子,分离出真因子并赋值给一个变量如b,最后将所有真因子的和与该自然数比较,此时需要if条件语句,筛选出符合条件的自然数后输出即可。 3) 亲和数:亲和数又叫友好数,是指两个自然数,其中每个自然数的真因子数之和等于另一个数。例如:220与284就是一对亲和数。 类比完美数,亲和数同样需要求出一个自然数的所有真因子,在此需求出两个自然数的所有真因子对应的和,然后比较。首先需要使用for-end循环语句,while-end循环语句以及if-end条件语句求出一定范围内(在此以2~10000为例)每一个自然数的所有真因子,然后用赋值语句赋值多个变量,利用这些变量以及if-end条件语句选择符合条件的自然数组即可。 4) 回文数:对于一个自然数,若将各位数字倒叙排除,加到原来的数字上,反复这样多次后,若能得到一个从左到右读与从右到左读完全一样的数,则称该自然数能产生回文数或者对称数。 首先我们可以选定取值范围(在此去1~100),其次我们需要使用赋值语言,同时需要将数字倒叙的程序,然后用循环和选择语句,即可选出1~100的回文数。 问题解答(实验过程) 水仙花数的编程代码 for i=100:1:999 a=mod(i,10); b=mod(((i-a)/10),10); c=(i-10*b-a)/100; if i==a^3+b^3+c^3 i end end 完美数编程代码 for i=2:1:10000; a=0; for b=1:1:i-1 if mod(i,b)==0 a=a+b; end end if i==a i end end 亲和数编程代码 for a=2:1:10000 t=1; n=2; s=sqrt(a); s=fix(s); if a==s^2 t=t+s; end while ns m=mod(a,n); if m==0 t=t+n+a/n; end n=n+1; end if ta b=t; l=1; d=2; p=sqrt(b); p=fix(p); if b==p^2 l=l+p; end while dp m=mod(b,d); if m==0 l=l+d+b/d; end d=d+1; end if l==a [a,b] end end end 回文数编程代码 clear;clc for n=1:1000 t=0; p=0; c=n; c1=n; while p2 while (c0) t=t*10+mod(c,10); c=c/10; c=fix(c); end if c1==t fpr

文档评论(0)

1亿VIP精品文档

相关文档