用c循环写出1-100的质数
时间: 2023-07-16 08:17:17 浏览: 83
以下是用C语言循环写出1-100的质数的代码:
```c
#include <stdio.h>
int main()
{
int i, j, flag;
// 从2到100逐个判断是否为质数
for (i = 2; i <= 100; i++) {
flag = 1; // 假设i是质数
// 判断i是否能被2到i-1之间的数整除
for (j = 2; j < i; j++) {
if (i % j == 0) { // 若能整除则不是质数
flag = 0;
break;
}
}
if (flag == 1) { // 若flag仍为1,则i是质数
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 以内的素数的代码:
```
#include <stdio.h>
int main() {
int i, j;
for (i = 2; i <= 100; i++) {
int isPrime = 1;
for (j = 2; j <= i / 2; j++) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime) {
printf("%d ", i);
}
}
return 0;
}
```
解释:
1. 要找出 1 到 100 以内的素数,我们需要遍历这个区间内的每个数字,所以使用一个 for 循环,循环变量 i 的初始值为 2,结束值为 100。
2. 对于每个数字 i,我们需要判断它是否为素数。我们定义一个变量 isPrime,初始值为 1,表示 i 是素数。如果我们在判断过程中发现 i 不是素数,就把 isPrime 的值设为 0。
3. 判断 i 是否为素数的方法是:对于每个小于 i 的正整数 j,如果 i 能被 j 整除,就说明 i 不是素数,跳出循环。如果循环结束后 isPrime 的值仍然是 1,说明 i 是素数,输出它的值。
注意:在判断 i 是否为素数时,只需要遍历小于等于 i 的一半的正整数,因为如果 i 有大于一半的因子,那么它的最小因子肯定小于一半,已经在前面的循环中判断过了。
C语言编写程序写出所有超级素数
超级素数是一种特殊的素数,它满足以下条件:
* 超级素数必须是素数(只有两个正整数可以整除它)。
* 它的阶乘必须是质数(没有正整数可以整除它)。
要编写一个程序来找出所有的超级素数,可以使用C语言和循环结构。下面是一个简单的示例程序:
```c
#include <stdio.h>
int is_prime(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int factorial(int n) {
int result = 1;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
int n = 10; // 可以更改这个值来查找更多的超级素数
printf("找到的超级素数(小于 %d):\n", n);
for (int i = 2; i <= n; i++) {
if (is_prime(i) && factorial(i) == factorial(i - 1) && factorial(i) % 2 != 0) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
这个程序首先定义了两个函数:`is_prime`用于检查一个数是否为素数,`factorial`用于计算一个数的阶乘。然后在主函数中,程序使用一个循环来检查从2到给定数值的所有数字,如果一个数字是素数并且它的阶乘等于它之前的阶乘(如果之前的阶乘不是1或负数),并且它的阶乘不能被2整除,那么这个数字就是一个超级素数。程序会打印出找到的所有超级素数。你可以更改`n`的值来查找更多的超级素数。
阅读全文