我写的一个求质数的函数

我写的一个求质数的函数:
>>> import math
>>> def getz(n):
 iszhishu=True
 testn=int(math.sqrt(n))+1
 for nn in range(2,testn):
  if n%nn==0:
   iszhishu=False
   print n,"is NOT a zhishu,yinzi is ",nn
   break
 if iszhishu:
  print n,"IS a zhishu"

  
>>> for x in range(3,101):
 getz(x)

基本的原理就是以前我们老师讲过的,看一个数是不是质数,将这个数开方,用比它的开方值小的数去除这个数,如果都除不断的话,就是质数。下面把getz(n)改了一下,我现在已经求得了10000以内的质数表,速度比较慢,出来的时候,像看动画一样。
>>> import math
>>> def getz(n):
 iszhishu=True
 testn=int(math.sqrt(n))+1
 for nn in range(2,testn):
  if n%nn==0:
   iszhishu=False
   #print n,"is NOT a zhishu,yinzi is ",nn
   break
 #if iszhishu:
 # print n,"IS a zhishu"
 return iszhishu

>>> for x in range(1,10000):
 if getz(x):
  print x,
 

### 回答1: 好的,以下是用C语言编素数的函数的代码: ```c #include <stdio.h> int is_prime(int num) { int i; if(num <= 1) { return 0; } for(i = 2; i <= num/2; i++) { if(num%i == 0) { return 0; } } return 1; } int main() { int num, i; printf("请输入一个正整数:"); scanf("%d", &num); printf("%d以内的素数有:", num); for(i = 2; i <= num; i++) { if(is_prime(i)) { printf("%d ", i); } } printf("\n"); return 0; } ``` 这个函数通过判断输入的正整数是否为素数,来找出小于等于输入数的所有素数。其中is_prime()函数用于判断一个数是否为素数,如果是,返回1;否则,返回0。主函数则是输入要找的素数的上限,并调用is_prime()函数来判断每个数是否为素数。 ### 回答2: 要用C语言编一个素数的函数,可以按照以下步骤进行: 1. 首先定义一个函数prime_number,该函数用于判断一个数是否是素数。函数的声明可以如下所示:int prime_number(int n); 2. 在函数内部,首先判断n是否小于等于1,若是,则返回0,表示不是素数; 3. 然后,使用一个循环从2到n的平方根的整数部分进行遍历,逐个判断n是否可以被该数整除。如果找到了一个可以整除n的数,则返回0,表示不是素数; 4. 若循环结束后仍未找到能整除n的数,则返回1,表示n是素数。 5. 在主函数main中,可以通过调用prime_number函数来判断某个数是否是素数。例如,可以输入一个数n,然后调用prime_number函数判断该数是否是素数,并根据返回值给出相应的提示信息。 这样,在调用prime_number函数时,若返回值为1,则表示该数是素数,否则表示不是素数。 完整示例代码如下所示: ``` #include <stdio.h> #include <math.h> int prime_number(int n) { if (n <= 1) { return 0; } for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { return 0; } } return 1; } int main() { int n; printf("请输入一个整数:"); scanf("%d", &n); if (prime_number(n)) { printf("%d是素数\n", n); } else { printf("%d不是素数\n", n); } return 0; } ``` 这样,通过调用prime_number函数,可以判断输入的数n是否为素数。 ### 回答3: 首先,素数是指只能被1和它本身整除的自然数。我们可以用C语言编一个函数来判断一个数是否为素数。 以下是一个用C语言实现的素数的函数: ```c #include <stdio.h> int isPrime(int num) { if (num <= 1) { return 0; // 小于等于1的数不是素数 } for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return 0; // 如果能被整除,则不是素数 } } return 1; // 是素数 } int main() { int n; printf("请输入一个正整数: "); scanf("%d", &n); if (isPrime(n)) { printf("%d是素数\n", n); } else { printf("%d不是素数\n", n); } return 0; } ``` 在上面的代码中,我们定义了一个名为`isPrime`的函数,该函数用于判断一个数`num`是否为素数。我们首先判断`num`是否小于等于1,因为小于等于1的数不是素数,所以直接返回0。然后,我们使用一个`for`循环,从2开始迭代到`num`的平方根位置,判断`num`是否能被`i`整除。如果存在可以整除的因子,则返回0,否则返回1。最后,在`main`函数中,我们通过用户输入一个正整数,并调用`isPrime`函数来判断是否为素数,然后输出结果。 希望以上代码能够帮助你理解如何用C语言编一个素数的函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值