求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

相关文章
|
11月前
【Leetcode -746.使用最小花费爬楼梯 -747.至少是其他数字两倍的最大数】
【Leetcode -746.使用最小花费爬楼梯 -747.至少是其他数字两倍的最大数】
67 0
|
30天前
|
C语言
【Amazon 面试题1】一个数组,里面得数出现的次数是偶数次,只有一个数出现的次数是奇数次,找出那个出现奇数次的数
本文介绍了解决Amazon面试题的一种方法,即在一个所有数字出现次数都是偶数,除了一个数字出现奇数次的数组中,利用异或运算的性质找出出现奇数次的数字,并提供了C语言实现的代码示例。
45 1
|
3月前
求100之内的素数
【6月更文挑战第18天】求100之内的素数。
22 1
|
4月前
40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和
40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和
40 5
|
4月前
|
存储
1013 数素数
1013 数素数
32 0
1013 数素数
|
4月前
|
算法 C语言
(“拨”取数字的典例:N位水仙花数判断及水仙花数变种)
这篇内容介绍了如何判断和生成水仙花数,水仙花数是一个n位数,其各位数字的n次方之和等于该数本身。文章首先回顾了"拨数"的概念,然后通过实例展示了如何判断三位水仙花数,并将其推广到任意位数的水仙花数。作者提供了详细的解题思路和代码示例,强调了解决这类问题时要慢下来,分步骤分析问题。最后,文章还探讨了一个水仙花数的变种问题,即数字拆分后乘积之和等于原数的情况。
83 0
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
判断10-105之间有多少个素数,并输出所有素数。【素数又称为质数,定义为在大于1的 自然数中,除了1和它本身以外不再有其他因数的数
80 0
遇7避过(输出1~100内的安全数,安全数不能带有7,不能被7整除
遇7避过(输出1~100内的安全数,安全数不能带有7,不能被7整除
58 0
#一个数如果恰好等于它的真因子之和,这个数就是“完数”。例如:6的真因子是1,2,3,而6=1+2+3,因此6是完数。编程找出1000之内的所有完数。
#一个数如果恰好等于它的真因子之和,这个数就是“完数”。例如:6的真因子是1,2,3,而6=1+2+3,因此6是完数。编程找出1000之内的所有完数。
236 0
L1-046 整除光棍 (20 分)567
L1-046 整除光棍 (20 分)567
124 0
L1-046 整除光棍 (20 分)567