不用isprime
时间: 2023-08-10 10:02:46 浏览: 85
好的,以下是不使用 `isPrime` 函数来计算 100 到 200 之间的所有素数之和的 C 语言代码:
```c
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 100; i <= 200; i++) {
int isPrime = 1;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime) {
sum += i;
}
}
printf("100到200之间的素数之和为:%d\n", sum);
return 0;
}
```
代码中,外层循环遍历 100 到 200 之间的每个数,内层循环用于判断当前数是否为素数。具体做法就是从 2 开始,一直枚举到当前数的前一个数,如果发现当前数能够被整除,就意味着它不是素数,将 `isPrime` 标记为 0,跳出内层循环。如果内层循环结束后 `isPrime` 仍然为 1,就说明当前数是素数,将它累加到 `sum` 变量中。最后输出结果。
相关问题
不用isPrime赋值的方法怎么做
好的,如果您不想使用变量 `isPrime` 来记录数字是否为素数,可以在 for 循环中使用一个布尔变量 `flag` 来代替。下面是修改后的代码:
```
import java.util.Scanner;
public class JavaApplication4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
boolean flag = true;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(num + "是素数");
} else {
System.out.println(num + "不是素数");
}
}
}
```
在这段代码中,我们定义了变量 `flag`,用于记录数字是否为素数。在 for 循环中,如果发现 num 能被除数 i 整除,则将 `flag` 赋值为 `false`,并跳出循环。最后根据 `flag` 的值输出相应的提示信息。
C语言编写有参函数,输入一个数并判断是否为素数,是的话返回1输出,不是的话返回0输出。(不用isprime函数)
以下是一个判断素数的函数实现:
```c
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
```
该函数接受一个整数 `n`,如果 `n` 是素数,则返回 1,否则返回 0。
主函数可以调用该函数来判断输入的数是否为素数并输出结果:
```c
#include <stdio.h>
int is_prime(int n);
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
if (is_prime(n)) {
printf("%d是素数。\n", n);
} else {
printf("%d不是素数。\n", n);
}
return 0;
}
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
```
注意需要在开头声明 `is_prime` 函数的原型,否则编译器可能会报错。