C语言编程 统计素数

C语言编程 统计素数,第1张

代码如下:

#include<stdio.h>

void main()

{

     int i,m,count=0,k1,k2,a[1001]

     scanf("%d%d",&k1,&k2)

 a[1]=1

 for(i=2i<=k2i++)

 {

 if (a[i]==1) break

 m=2

 while (i*m<=k2)

 {

 a[i*m]=1

 m++

 }

 }

 for(i=k1i<=k2i++)

 if (a[i]!=1) count++

 printf("%d\n",count)

 for(i=k1i<=k2i++)

 if (a[i]!=1) printf("%d ",i)

 printf("\n")

}

这段代码是用筛选法筛出素数,再计算素数的个数,最后输出[k1,k2]间的素数,应该不会超时。

先编写一个判断素数的函数,类型为bool型

bool Isprime(int number)

{

for (int i = 2i <numberi++)

if (number mod i != 0)

return false

return true

}

上面的代码还可以继续优化,只是给你提供个思路

然后在主函数里面循环调用这个函数 比如数组num[N] 循环N次,将num[i] 作为参数调用上面的函数,然后看返回值,如果未true 素数的个数+1,就可以了

PYTHON代码,以下代码为chatgpt生成:

def isPrime(n):

if n <= 1:

return False

for i in range(2, int(n ** 0.5) + 1):

if n % i == 0:

return False

return True

count = 0

for i in range(2, 1000):

if isPrime(i):

print(i, end=" ")

count += 1

if count % 10 == 0:

print()

print("\n共计%d个素数。" % count)

程序中首先定义了一个名为isPrime的函数,用于判断一个数是否为素数。当n小于等于1时,直接返回False;当n大于1时,对于从2到n的平方根的所有数进行判断,如果n能够被这些数整除,则n不是素数;如果不存在这样的数,则n是素数。

接下来,程序使用循环从2到999之间的数,对于每个数,调用isPrime函数进行判断。如果是素数,就打印出来,并且计数器加1。每输出10个素数,就换行。

最后,程序输出共计多少个素数。

使用方法如下:

首先找到:

接着提出问题:

搞定~~

...

就是这些啦,整理不易,看完记得点个赞再走呀~


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

原文地址: http://outofmemory.cn/yw/12189650.html

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

发表评论

登录后才能评论

评论列表(0条)

保存