C语言 100以内素数用函数的形式
时间: 2024-10-19 19:04:10 浏览: 21
在C语言中,我们可以编写一个函数来找出100以内所有的素数。素数是指大于1的自然数,除了1和它本身以外不再有其他因数的数。以下是一个简单的函数示例:
```c
#include <stdio.h>
// 函数声明,返回值类型为int,接受两个参数n(查找范围的上限)和i(当前判断的数字)
int isPrime(int n, int i);
// 主函数
int main() {
int limit = 100;
for (int i = 2; i <= limit; ++i) { // 从2开始检查,因为1不是素数
if (isPrime(limit, i)) {
printf("%d ", i); // 如果找到素数,打印出来
}
}
return 0;
}
// 判断一个数是否为素数的辅助函数
int isPrime(int n, int i) {
if (i > sqrt(n)) {
return 1; // 如果i大于sqrt(n),那么i不可能是n的因子,所以i是素数
} else if (n % i == 0) {
return 0; // 如果n能被i整除,则n不是素数
} else {
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++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
break;
}
}
if (j == i) {
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++) {
if (i % j == 0) {
return false;
}
}
return true;
}
int main() {
int i, j;
printf("打印100以内所有素数:\n");
for (i = 2; i <= 100; i++) {
if (isprime(i)) {
printf("%d ", i);
}
}
return 0;
}
```
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;
}
```
阅读全文