当前位置:首页 » 编程语言 » 判断一个数为质数最优算法c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

判断一个数为质数最优算法c语言

发布时间: 2022-06-07 10:47:31

1. c语言算法中,判断一个数是素数要程序

/*To judge whether a number 'n' is prime number or not*/
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,k,prime=1;

do
{
printf("Please input a positive number:\nn=");
scanf("%d",&n);
}while(n<=0);

if(1==n)
prime=0;

k=(int)sqrt(n);

for(i=2;prime&&i<=k;i++)
if(0==n%i)
prime=0;

if(prime)
printf("%d is a prime number.\n",n);
else
printf("%d is not a prime number.\n",n);

return 0;
}

2. C语言判断一个数是否是质数

根据质数的定义,在判断一个数n是否是质数时,只要用1至n-1去除n,看看能否整除即可。
还有更好的办法:先找一个数m,使m的平方大于n,再用小于等于m的质数去除n(n为被除数),如果都不能整除,则n必然是质数。如我们要判断1993是不是质数,50*50>1993,那么只要用1993除以<50的质数看是否能整除,若不能即为质数。100以内的质数有25个,还是比较好记的,只要记熟100以内质数,就可以快速判断10000以内的数是不是质数。
100以内的质数有2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97,在100内共有25个质数。

只有1和它本身两个因数的自然数,叫质数(或称素数)。(如:由2÷1=2,2÷2=1,可知2的因数只有1和它本身2这两个约数,所以2就是质数。与之相对立的是合数:“除了1和它本身两个因数外,还有其它因数的数,叫合数。”如:4÷1=4,4÷2=2,4÷4=1,很显然,4的因数除了1和它本身4这两个因数以外,还有因数2,所以4是合数。)

3. c语言判断一个数是否为质数

#include<stdio.h>
int main()
{
int i, n;
while (scanf("%d", &n) != EOF)
{
for (i = 2; i < n; i++)
if (n % i == 0)
break;
if (i >= n&&n>1)
printf("%d是质数\n", n);
else
printf("%d不是质数\n", n);
}
return 0;
}

4. C语言编程:判断某数是否是质数

#include<stdio.h>
int main(int argc,int argv[]){
int a,flag;
scanf("%d",&a);/*输入一个数进行判断是否是质数*/
int isprime(int);/*这里是对将要调用的函数声明一下*/
flag=isprime(int);
if(flag==1) printf("%d is isprime",a);
printf("%d is not isprime",a):
return 1;/*这里的语句代表调用函数成功*/
}
int isprime(int a){ /*功能函数,判断是否是素数*/
int i;
for(i=2;i<=a/2;i++)
if(a%i==0) return 0;/*只要有一次相除为0,马上就能判断不是素数*/
return 1;/*否则经过循环之后,都没有相除为0呢,就说明一定是素数了*/
}
看到这里是不是有点疑惑了呢?我到网络查了一下,质数也称素数,你注意看就好。。不懂再追问。。
不过我想你看完之后你应该能明的了,我已经写得好详细了啦。。。。

5. c语言如何判断素数

素数又称质数,所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。

首先要知道素数是不等于1,它的因子只有1和它本身。判断一个数是否为素数,可以用大于1小于给定数的所有数去除给定数,如果有任何一个能够除尽,就表示是合数,反之是素数。

(5)判断一个数为质数最优算法c语言扩展阅读:

首先,本文英文字母都表示整数,上半部B 》3N 》W,下半部B 》W 》3N。大于3的素数只有6N-1和6N+1两种形式,我们只需判定这两种数是素数还是合数即可。

命题 1 对于B=36N+1 形数而言。

若不定方程(3N)^2+N-(B-1)/36=W^2 有整数解,

则 6(3N-W)+1 是小因子数;6(3N+W)+1 是大因子数。

若不定方程 (3N)^2-N-(B-1)/36=W^2 有整数解,

则 6(3N-W)-1 是小因子数;6(3N+W)-1 是大因子数。

两式都无解,是素数。

6. 如何用c语言编写出判断一个数是否为质数的程序

#include <stdio.h>
#include <math.h>
//n不能够被不大于根号n的任何素数整除,则n是一个素数
//以下代码计算1000以内所有素数
int main()
{
int i,j,n = 1000,sq;

for(i = 2;i < n;i ++)
{
sq = sqrt(i);
for(j = 2;j <= sq;j ++)
{
if(!(i % j))
break;
}
if(sq < j)
printf("%4d",i);
}
putchar('\n');
return 0;
}

7. c语言中如何判断一个数是否是质数

#include "stdio.h"
void main()
{
int a;
int i;
int flag=0; //用于标注能被整除的次数
printf("请输入一个整数:");
scanf("%d",&a); //要输入的整数
for (i=1;i<=a;i++) {
flag=1;
//如果 a 能被 i 整除,那么flag自加1
if (a%i==0) {
flag++;
}
}
//如果一个整数是质数,那么只有被1和它本身整除,所以只有2,如果超过2,那么肯定不是质数
if (flag==2) {
printf("你输入整数为质数。");
} else {
printf("你输入整数不为质数。");
}
}

8. c语言求素数的算法

根据素数的性质,代码设计如下:

设计一:判断n是否能被1~n-1整除,不能整除为素数

#include<stdio.h>

int main()

{

int i, n;

scanf("%d", &n);

for (i = 2; i < n ; i++)

{

if (n%i == 0)

break;

}

if (i < n) printf("This is not a prime.");

else printf("This is a prime.");

return 0;

}

设计二:判断n是否能被2~√n间的整数整除,不能整除为素数

#include<stdio.h>

#include<math.h>

int main()

{

int n,i;

double k;

scanf("%d", &n);

k = sqrt(n);

for (i = 2; i <= k;i++)

{

if (n%i == 0) break;

}

if (i <=k) printf("This is not a prime.");

else printf("This is a prime");

return 0;

}

(8)判断一个数为质数最优算法c语言扩展阅读:

1.素数的定义是只能被1和他本身整除,1不是素数.因此要判断一个数是否为素数.就要判断它能不能被比他小的所有素数整除,这是一个算法.(写到算法时,我只能写出用它除以比他小的所有数,造成运算速度低下)

2.如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。由此可以得到一个法2较快的素数判断算法

9. c语言求质数的算法,讲方法也行,不要那种on2的算法

http://blog.csdn.net/liukehua123/article/details/5482854
这个地方介绍了两种判断素数的算法,希望可以帮到你。

10. c语言怎么判断一个数是素数

不要拍照,直接代码上来看吧。。。。看不清。。。