求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

相关文章
【Leetcode -746.使用最小花费爬楼梯 -747.至少是其他数字两倍的最大数】
【Leetcode -746.使用最小花费爬楼梯 -747.至少是其他数字两倍的最大数】
77 0
|
3月前
求100之内的素数
求100之内的素数。
46 13
|
3月前
判断一个素数能被几个9整除
【10月更文挑战第10天】判断一个素数能被几个9整除。
44 2
|
7月前
|
人工智能
1079 延迟的回文数 (20 分)
1079 延迟的回文数 (20 分)
|
8月前
|
机器学习/深度学习
一个偶数总能表示为两个素数之和。
一个偶数总能表示为两个素数之和
40 0
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
109 0
#一个数如果恰好等于它的真因子之和,这个数就是“完数”。例如:6的真因子是1,2,3,而6=1+2+3,因此6是完数。编程找出1000之内的所有完数。
#一个数如果恰好等于它的真因子之和,这个数就是“完数”。例如:6的真因子是1,2,3,而6=1+2+3,因此6是完数。编程找出1000之内的所有完数。
265 0
质数练习_第二次优化
质数练习_第二次优化自制脑图
62 0
质数练习_第二次优化
|
人工智能
PAT乙级1007.素数对猜想(20分)
PAT乙级1007.素数对猜想(20分)
107 0