以下各题均要求编程实现,并将程序贴在题目下方。
1.从键盘输入任意个正整数,以 0 结束,输出那些正整数中的素数。
clc;clear;
zzs(1)=input('请输入正整数: ');k=1;
n=0;%素数个数
while zzs(k)~=0
flag=0;%是否是素数,是则为 1
for yz=2:sqrt(zzs(k))%因子从 2 至此数平方根
if mod(zzs(k),yz)==0
flag=1;break;%非素数跳出循环
end
end
if flag==0&zzs(k)>1%忽略 0 和 1 的素数
n=n+1;sus(n)=zzs(k);
end
k=k+1;
zzs(k)=input('请输入正整数: ');
end
disp(['你共输入了' num2str(k-1) '个正整数。它们是:'])
disp(zzs(1:k-1))%不显示最后一个数 0
if n==0
disp('这些数中没有素数!')%无素数时显示
else
disp('其中的素数是:')
disp(sus)
end
2.若某数等于其所有因子(不含这个数本身)的和,则称其为完全数。编程求
10000 以内所有的完全数。
clc;clear;