用c语言求1~100的素数
时间: 2023-06-04 22:05:39 浏览: 66
以下是使用 C 语言求解 1~100 的素数的代码:
```c
#include <stdio.h>
int main()
{
int i, j, isPrime;
// 判断 1~100 中的每个数是否为素数
for (i = 2; i <= 100; i++)
{
isPrime = 1; // 假设当前数是素数
for (j = 2; j < i; j++) // 从2开始到i-1遍历每个数
{
if (i % j == 0) // 当i可以被j整除时
{
isPrime = 0; // 说明i不是素数
break; // 跳出当前循环
}
}
if (isPrime) // 如果当前数是素数
{
printf("%d ", i); // 输出这个数
}
}
return 0;
}
```
输出结果为:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
相关问题
c语言求1~100所有素数
以下是两种C语言求1~100所有素数的例子:
1. 第一种方法是用100到200之间的每个数字,除以2到其本身前面的那一个数字,如果此过程中出现整除的现象,则该数不是素数。如果没有整除的现象,则该数为素数输出。
```c
#include <stdio.h>
int main() {
int i = 0;
int count = 0;
for (i = 100; i <= 200; i++) {
int j = 0;
for (j = 2; j <= i; j++) {
if (i % j == 0) {
break;
}
}
if (i == j) {
count++;
printf("%d ", i);
}
}
printf("\ncount=%d\n", count);
return 0;
}
```
2. 第二种方法是遍历至该数的平方根,如果该数能被小于等于其平方根的所有正整数整除,则该数为素数。
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, j;
for (i = 2; i <= 100; i++) {
int isPrime = 1;
for (j = 2; j <= sqrt(i); j++) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime == 1) {
printf("%d\n", i);
}
}
return 0;
}
```
c语言求100~200间的全部素数
以下是C语言求100~200间的全部素数的代码示例:
```c
#include <stdio.h>
#define N 200
int main() {
// 标记数组,prime[i]为true表示i是素数,否则为合数
bool prime[N + 1];
for (int i = 2; i <= N; i++) {
prime[i] = true;
}
// 埃氏筛
for (int i = 2; i * i <= N; i++) {
if (prime[i]) {
for (int j = i * i; j <= N; j += i) {
prime[j] = false;
}
}
}
// 输出100~200间的素数
for (int i = 100; i <= N; i++) {
if (prime[i]) {
printf("%d ", i);
}
}
return 0;
}
```