matlab中ceil函数的用法。

matlab中ceil函数的用法。,第1张

ceil

是向离它最近的大整数圆整

如a

=

[-19,

-02,

34,

56,

7,

24+36i]

圆整后:a=[-1,0,4,

6,

7

,3+4i]

在这里选择ceil(sqrt(m)),可以快速实现查找素数目标,

你也可以选择建立2到m/2的向量

只不过sqrt(m)循环量少,算法效率更高

知道你意思了,这是函数文件,需要在command运行窗口输入,但文件名一定是函数名才可以,本文件名为:sushum

。command窗口输入过程如下:

n=7

sushu(n)

函数程序可运行,但结果错误,修改如下(有解释部分):

function [t]=sushu(n)

k=floor(sqrt(n));

for i=2:k

if mod(n,i)==0

t=0;

break;%表示当被i整出时,不是素数,终止循环

else

t=1;

end

end

a=[1:10000];

b=a(isprime(a));

Q=sum(b); %Q= 5736396

例如:

要找素数

clear all;clc;

a=1:10000;

b=isprime(a);

a=ba;

a(a(1,:)==0)=[];

size(a)

ans =

1 1229

扩展资料:

1、如果 为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。

2、其他数学家给出了一些不同的证明。欧拉利用黎曼函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,哈里·弗斯滕伯格则用拓扑学加以证明。

-质数

a= input('请输入一个大于二的整数:');

p = true(a,1);

q = (1:1:a)'; p(1)=false;

for i = 2:1:sqrt(a)

if(p(i))

p(2i:i:end)=false;

end

end

disp(q(p))

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11673220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存