本文目录一览:
- 1、C语言 质数 怎么做啊
- 2、输出100以内的质数,用c语言编写
- 3、C语言的质数算法求教!
- 4、C语言求素数数组
- 5、C语言如何实现质数输出
- 6、C语言 素数 数组
C语言 质数 怎么做啊
#includestdio.h
#includemath.h
int is_prime(int tar){//判断是否为素数
int i = 2;
int end = sqrt((float)tar);
while(i = end){
if(tar % i == 0)
return 0;
i++;
}
return 1;
}
int main(){
int num;
scanf("%d", num);
if(is_prime(num)==1)
printf("Y\n");
else
printf("N\n");
return 0;
}
输出100以内的质数,用c语言编写
#includestdio.h
int main()
{
int i,j;
int count=0;
for(i=2;i100;i++)
{
for(j=2;j=i/2;j++)
if(i%j==0)//如果i能被j整除 就不是质数 退出循环
break;
if(ji/2)
{
count++;
printf("%-3d",i);
if(count%5==0)//当每一行有5个数时 换行
printf("\n");
}
}
return 0;
}
for(j=2;j=i/2;j++)中的 j=i/2是表示 从j=2开始遍历到j=i/2 看看2~i/2中能否整除i
如果都不能 说明i是质数(也就是ji/2)
如果有1个及以上能整除i 说明i不是质数
for()
{
}
//for循环结束之后 j的值是大于i/2的 因为for循环的条件是:j=i/2
//因此 当ji/2时 for循环结束
if(ji/2)
这里当且仅当2~i/2都不能整除i时 也就是ji/2 才说明i是质数
参考资料
输出100以内的质数,用c语言如何编写?.百度知道[引用时间2017-12-25]
C语言的质数算法求教!
比如一个数n,比他小的质数有{2,3,5,7,11,13}。怎么判断n是否质数?
n只要除以{2,3,5,7,11,13}里的所有数,都除不尽,那么n就也是质数了,对吧。
而实际上,这个序列可以缩小。n只要除以这个序列里面,所有比根号下n小的质数,都除不尽,那么n就是质数了。因为如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。
例如21,它可以除尽7,而它同样可以除尽3。所以判断21是否质数,只需要判断21是否可以除尽2和3就可以了。5和7和11就不需要判断了。
所以for(i=1;counter++,prime[i]*prime[i]=no;i++),就是说这个素数的平方达到了要判断的no的时候就退出,也就是判断所有比no的根号更小的素数。
C语言求素数数组
#include stdlib.h
#include stdio.h
void readwriteDat();
void num(int m, int k, int *xx)
{
int n=0,i,b;
while(m++)/*死循环*/
{
for(i=2;im;i++)
{
if(!(m%i))
{b=0;break;}
else b=1;
}
if(b) xx[n++]=m;/*if(n==k-1) break;
}
}
int main()
{
int m, n, xx[1000];
printf("\nPlease enter two integers:");
scanf("%d%d", m, n);
num(m, n, xx);
for (m=0; mn; m++)
printf("%d ", xx[m]);
printf("\n");
readwriteDat();
system("pause");
return 0;
}
void readwriteDat()
{
int m, n, xx[1000], i;
FILE *rf, *wf;
rf = fopen("in.dat", "r");
wf = fopen("out.dat", "w");
for (i=0; i10; i++)
{
fscanf(rf, "%d %d", m, n);
num(m, n, xx);
for (m=0; mn; m++)
fprintf(wf, "%d ", xx[m]);
fprintf(wf, "\n");
}
fclose(rf);
fclose(wf);
}
求一个大于m且仅靠m的k个素数存入数组xx传回,不知哪里出错,除了num函数,其他都是题目给的
C语言如何实现质数输出
代码如下:
/*
* 输出 1~20 之间的质数
*/
#include stdio.h
#include math.h
//判断一整数是否为质数
int isprime(int n)
{
int i;
int up;
int ret = 1;
up = sqrt(n);
for (i=2; i=up; i++) {
if (n%i==0) {
ret = 0;
break;
}
}
return ret;
}
//主函数
int main()
{
int n;
printf("1~20 之间的质数有:");
for (n=2; n20; n++) {
if (isprime(n))
printf("%d ", n);
}
printf("\n");
return 0;
}
运行程序,输出如下:
1~20 之间的质数有:2 3 5 7 11 13 17 19
C语言 素数 数组
if(i%j==0)下面的代码用大括号括起来,最后一个for语句中,
for(i=0;i=count;i++)改成for(i=0;icount;i++),代码改为如下:
#include stdio.h
void main()
{
int m,i,k,j,a[100],*p=a,count=0;
printf("Please input a number:");
scanf("%d",m);
for(i=2;i=m;i++)
for(j=2;ji;j++)
{
if(i%j==0)
{
*p=i;
p++;
count++;
break;
}
}
for(i=0;icount;i++)
printf("%d ",a[i]);
}