当前位置:首页 » 编程语言 » c语言里面的质数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言里面的质数

发布时间: 2023-03-14 17:32:26

c语言求1到n所有质数

按照题目要求编写的程序如下(见图)

㈡ C语言计算质数

#include<stdio.h>
staticcharm[8000000];
staticintprime[500000];
#defineMAX_N7368787
voidset(void)
{
inti,j;
for(i=2;i<=MAX_N;i++)
{
if(m[i]==1)continue;
for(j=i+i;j<=MAX_N;j+=i)
m[j]=1;
}
for(i=j=0;i<=MAX_N;i++)
if(m[i]==0)prime[j++]=i;
}

intmain()
{
intm,n,;
while(~scanf("%d%d",&m,&n))
{

for(i=m;i<=n;i++)
{
printf("%d",prime[i-1]);
if(i==n||(i-m)%10==9)putchar(' ');
elseputchar('');
}
}
return0;
}

㈢ c语言 质数

你可以在数组的最后加一项 0 ,但中间就不能有 0 了。然后改成这样:

#include<math.h>
int main()
{

int n, i,k, a[]={5,20,34,13,25,9,12,23,36,19,0}; //多了个0

n=0; //给 n 赋初值 0
while(a[n]) //当a[n]为true,即 a[n] 不为 0
{
k=sqrt(a[n]); //这里直接用 a[n]

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

if(i>k)
printf("%d ",n);

n++; //n增加1 ,使 a[n] 为下一个数
}
}

㈣ C语言中的质数

数学的概念中,素数就是只能被1和它本身所整除的整数。但是有一个例外,就是1不属于素数。所以你在输入一个整数并加以判断的时候就需要考虑这种情况了。如下即可:

while(scanf("%lu", &num) == 1 && num != 1)

这里用到了while循环来判断输入的数值并加以判断,如果输入格式正确的话会返回一个1并将输入的数值存入num这个变量中,然后再判断num的值是否为1。

在这里有一条很好用的规则用于素数的判断:测试的数只需要界于2到num的平方根之间的所有数,看它们是否可以整除num。如果可以整除,说明输入的数不是素数;反之,说明输入的数是素数。

  • 到这里,就会有人说平方根怎么求,其实这个很好解决。你完全可以像下面这样描述判断条件:

  • for(div = 2; (div * div) <= num;div++){ if(num % div == 0){ if((div * div) != num){

  • printf("%lu is divisible by %lu and %lu. ", num, div, num / div);

  • }else {

  • printf("%lu is divisible by %lu. ", num, div);

  • }

  • }

  • }
  • 在这里,在if条件语句里面还嵌套了一个if条件语句,用来判断两个约数是否是一样的,比如144,约数是12和12,这时候就只需要打印一个约数即可。

㈤ C语言求质数

红框里的代码,加上那个i++的for循环,其逻辑是:
从2开始,遍历所有小于n的整数,
只要存在一个整数可以被n整除(即余数为0),则可判断n为合数.
若从2到n-1范围内,不存在可整除n的数,则判断n为质数.

还有 for(int .......)这种定义变量的写法,要C99才支持,现在很多编译器默认C89标准,或者不支持C99标准,这样写容易出错.

第一个for循环里面,直接把n=0,1,2的情况跳过了.既然这样,变量n直接把初值赋为3不就好了,赋值0干嘛.

第二个for循环里面,判断到i<sqrt(n)就可以了,还有更简单的求质数算法,感兴趣可以网络.

㈥ 用C语言输出100之间的所有质数

1、首先新建一个空白的c语言文件,引入头文件,头文件中包括math库,稍后会用到,建立主函数:

㈦ c语言 质数

把1<N<1000;去掉,scanf("%d",&N);少了&;你的质数判断方法也有问题