求100之内的素数

简介: 求100之内的素数

C语言实现


在C语言中,我们可以使用一种简单的方法,即遍历每个数并检查它是否能被小于它的任何数整除。如果都不能,则它是素数。下面是一个简单的C语言实现:


c复制代码
 #include <stdio.h>  
 
 #include <stdbool.h>  
 
   
 
 bool isPrime(int n) {  
 
     if (n <= 1) return false;  
 
     for (int i = 2; i * i <= n; i++) {  
 
         if (n % i == 0) return false;  
 
     }  
 
     return true;  
 
 }  
 
   
 
 int main() {  
 
     printf("100以内的素数有:\n");  
 
     for (int i = 2; i <= 100; i++) {  
 
         if (isPrime(i)) {  
 
             printf("%d ", i);  
 
         }  
 
     }  
 
     return 0;  
 
 }



Python实现

在Python中,我们可以使用类似的逻辑,但是Python的语法更简洁,并且Python内置了丰富的库,但在这里我们将使用基本的循环和条件判断。


方法1:基本循环和条件判断


python复制代码
 def is_prime(n):  
 
     if n <= 1:  
 
         return False  
 
     for i in range(2, int(n**0.5) + 1):  
 
         if n % i == 0:  
 
             return False  
 
     return True  
 
   
 
 print("100以内的素数有:")  
 
 for i in range(2, 101):  
 
     if is_prime(i):  
 
         print(i, end=' ')


方法2:使用列表推导式(更简洁)


虽然列表推导式本身不直接减少计算量,但它可以使代码更简洁和Pythonic。


python复制代码
 def is_prime(n):  
 
     if n <= 1:  
 
         return False  
 
     for i in range(2, int(n**0.5) + 1):  
 
         if n % i == 0:  
 
             return False  
 
     return True  
 
   
 
 print("100以内的素数有:", [i for i in range(2, 101) if is_prime(i)])



注意:在Python和C语言的实现中,我们都使用了优化,即只检查到sqrt(n)。这是因为如果n有一个因子大于它的平方根,那么它必定有一个小于或等于它的平方根的因子。这样可以显著减少不必要的检查,提高算法的效率。


image.png

相关文章
|
3月前
求100之内的素数
求100之内的素数。
46 13
|
3月前
|
机器学习/深度学习
一个偶数总能表示为两个素数之和
【10月更文挑战第10天】一个偶数总能表示为两个素数之和。
26 2
|
8月前
40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和
40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和
81 5
|
8月前
|
存储
1013 数素数
1013 数素数
46 0
1013 数素数
|
8月前
|
机器学习/深度学习
一个偶数总能表示为两个素数之和。
一个偶数总能表示为两个素数之和
40 0
|
8月前
|
人工智能
试除法判定质数
试除法判定质数
48 0
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
109 0
质数练习_第二次优化
质数练习_第二次优化自制脑图
62 0
质数练习_第二次优化
|
人工智能
PAT乙级1007.素数对猜想(20分)
PAT乙级1007.素数对猜想(20分)
107 0