C语言打印100以内的质数
时间: 2023-06-21 19:24:33 浏览: 118
可以使用以下代码来打印100以内的质数:
```c
#include <stdio.h>
int main() {
int i, j;
for (i = 2; i <= 100; i++) {
int is_prime = 1;
for (j = 2; j <= i/2; j++) {
if (i % j == 0) {
is_prime = 0;
break;
}
}
if (is_prime) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
该程序使用两个嵌套的循环来判断每个数字是否是质数,如果是质数则打印出来。特别地,内层循环只需要判断到i的一半即可,因为如果i能被大于i/2的数整除,那么它也一定能被小于i/2的数整除,所以没有必要进行多余的计算。
相关问题
用C语言求100以内素数
在C语言中,我们可以使用一个简单的算法来找出100以内的所有素数。这里我们采用埃拉托斯特尼筛法(Sieve of Eratosthenes),这是一种古老的寻找素数的有效方法。以下是相应的C代码:
```c
#include <stdio.h>
// Function to find prime numbers up to a given limit
void findPrimes(int n) {
// 创建一个布尔数组 "prime[0..n]" 用于标记是否为素数
int prime[n + 1];
memset(prime, 1, sizeof(prime)); // 全部初始化为true
// 将 0 和 1 标记为非素数
prime[0] = prime[1] = 0;
// 遍历到sqrt(n),如果prime[i]为true,则它是一个素数
for (int i = 2; i * i <= n; i++) {
// 如果prime[i]还未改变,说明i是质数,将它的倍数标记为非素数
if (prime[i]) {
for (int j = i * i; j <= n; j += i)
prime[j] = 0;
}
}
// 输出所有的素数
for (int p = 2; p <= n; p++)
if (prime[p])
printf("%d ", p);
}
int main() {
int limit = 100;
printf("Prime numbers between 0 and %d are:\n", limit);
findPrimes(limit);
return 0;
}
```
当你运行这段代码,它会打印出100以内的所有素数。
c语言100以内素数
以下是两种C语言求100以内素数的例子:
1.思路一:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, j;
printf("打印100以内所有素数:\n");
for (i = 2; i <= 100; i++) { //外循环从2遍历到100,可以修改范围输出不同范围内的素数
for (j = 2; j < i; j++) { //内循环通过大于1小于自身的因数进行依次取余判断,直到相除没有余数,跳出循环。
if (i % j == 0) {
break;
}
}
if (j == i) { //这个判断是重点,意思是在前面的条件成立的前提下除数和被除数相等的才为素数,例如12有3×4,但是不相等,例如13只有当i==j是即i==j==13时候才能成立
printf("%d ", i);
}
}
return 0;
}
```
2.思路二:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>
bool isprime(int i) //判断是否是素数的自定义函数
{
int j;
for (j = 2; j <= sqrt(i); j++) { //for循环判断如果不是素数则返回0
if (i % j == 0) { //如果在i的平方根范围内的所有数字都不能被整除就说
//明这个数字是素数,但凡有一个能被整除那么这个数字就违背了素数的定义
return false;
}
}
return true; //如果是素数则返回true
}
int main() {
int i, j;
printf("打印100以内所有素数:\n");
for (i = 2; i <= 100; i++) { //for循环遍历一个一个判断,如果是素数那么就打印出来,遍历的数字范围能被修改,输出不同范围的素数
if (isprime(i)) {
printf("%d ", i);
}
}
return 0;
}
```
阅读全文
相关推荐













