求素数算法
A. 求100以内的素数的算法
谈不上算法:
#include<iostream>
using namespace std;
int main()
{
int a,b,c,ipt;
for (c=1;c>0;c++)
{
do
{
cout<<"请输入你所想要的大于一的素数范围:";
cin>>ipt;
} while (ipt<=1);
for (a=2;a<=ipt;a++)
{
for (b=2;b<=a;b++)
{
if (a%b==0)
{
break;
}
}
if (a==b)
{
cout<<a<<"\t";
}
}
cout<<endl;
}
return 0;
}
B. 一个求素数的算法
t从0到cap^2-1
i从0到cap-1
j从0到i
实际上这里cap起的作用仅仅为了使i和j满足:i从0到cap-1,j从0到i
实际上composite为j从2到i-1时整除i的个数
当j=0时,使composite重置为0
当j=i时,开始判断
每次j能整除i,composite则增加1,到时就不会输出i
当2到i-1的j都不整除i,此时i为素数,composite为0,可以将其输出
希望你能看明白
不懂的话
还可以问的
一般晚上十点我都有空
C. 求素数的最简便的算法程序
S1:定义2个变量N
R
S2:N=1
S3:输入的数被N整除
余数为r
S4:R=0则
输入的数不为素数
结束
S5:R!=0
N=N+1
TO
S3
S6:N<输入的数
输入的数为素数
D. 求100位以上的大素数算法
从计算机编程角度上来说,算法应该是给定某个数n,然后用这个数n从2开始除,一直除到这个数开平方根(即根号n)为止,如果其中有能被整除的数,那么这个数n就不是素数,反之就是素数,这样的算法在数学上是可以证明的,但对于编程初学者来说,可以从素数的定义着手考虑程序算法,即从2一直除到n-1为止,没有可以被整除的数时,n就是素数 ,
c、c++,java等相近的计算机编程语言的核心代码如下:
...//程序开头
int i,j,sum=0;;
for(i=100;i<=1000;i++)
{
for(j=2;j<i;j=j++)
{
if(i%j==0) break;
}
if(j>=i) //判断上术循环是不是正常退出,是正常退出的话,那个数就是素数 。通过Break语句退出的就不是素数了。
{
sum++;
System.out.println("第"+sum+"个"+i+"是素数!");//这里我采用的是JAVA的程序输出格式,作用是将求出的素数输出;c语言里可以用printf,c++里可以用cout<<;等等。。。
}
}
...//程序结尾
附C的代码:
main(){
int i,j,sum=0;;
for(i=100;i<=1000;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0) break;
}
if(j>=i)
{
sum++;
printf("第"+sum+"个"+i+"是素数!");
}
E. math:求质数的几种算法
你想想吧,如果判断100是否为素数,那就是用2、3、4……去除100,只要有一个被整除了,那100就不是素数!sqrt(100)是求100的平方根的意思,100的平方根是10,用2、3、4……10去除100就可以了,用不着再用11、12、13……99去除100了。为什么呢?因为一个数是它的两个平方根之积,用其中一个平方根之内的各个数遍历了,难道还有漏网的数未去除“这个数”?比如100吧,找个大于其平方根10的好说的数20为例,说没有必要用20去除100了就是因为你已经用5除过了,100不是素数!a÷b=c的话,那a÷c不就等于b嘛,干嘛非得反过来再除一次?这样做的目的是为了提高代码时效,试想10000的平方根是100,用这方法10000是不是素数顶多做100次除法就知道了,不然就可能要做9999次,哪个时效高?多说一句,从判定“是不是素数”这一点上说,有没有sqrt(这个数)倒确实是无意义的……
F. 米勒勒宾算法求大素数的代码或者算法
参考文献 http://blog.csdn.net/fisher_jiang/article/details/986654
这篇文章讲的很好,给你看看,欢迎讨论。
G. 求素数怎样优化算法
1.如果要找出这个范围内的所有素数,可以使用筛选法,把不是素数的筛掉
从小到大,如果p是素数,则筛去p*p,p*(p+1),.....
2.如果只是做判断,就用Miller-Rabin测试,基于费马小定理,对于正整数n,如果存在正整数a,满足a^(n-1)=1(mod
n),(=应为三行的同余)
则n为基于a的伪素数,也就基本上是素数拉,只要对随机的多个a进行测试,如果都成立,就可以认为n是素数拉.
H. 计算机C语言求素数算法,
这个有很多种
常用的 判断除以2.,除以。。。。。 这适用于判断具体的某个数组
剔除法 除以2的时候 把2的倍数全部剔除 以此类推。。。 这适合求多个
已有查找法,用文件数组保存一些素数,为方便使用直接查找 这个属于取巧类型严格不算算法
还有其他比较高级一些的算法这个可以具体找找
I. C++求素数的算法
#include<iostream.h>
void main()
{
int i,j;
cout<<"输出100以内的素数"<<endl;
cout<<"100内的素数为"<<endl;
for(i=1;i<=100;i++)
{for(j=2;j<i;j++)
{if(i%j==0)
break; }
if(i==j)
cout<<" "<<i;}
}
素数的范围通过修改100就行了
J. c语言 求素数的算法!!!(要更快点的方法)
10000以内的素数:
#include <stdio.h>
main()
{
int n,i;
for(n=3;n<=10000;n++)
{
for(i=2;i<n;i++)
if(n%i==0) break;
if(i>=n)
printf("%d,",n);
}
}