用c需要写一个判断质数的代码。要求在虚拟机上输入一个数字,能够准确判断且打印是否为质数
时间: 2024-02-27 07:58:40 浏览: 62
以下是用C语言编写的判断质数的代码:
```c
#include <stdio.h>
int main() {
int num, i, flag = 0;
printf("请输入一个正整数:");
scanf("%d", &num);
for (i = 2; i <= num / 2; ++i) {
if (num % i == 0) {
flag = 1;
break;
}
}
if (num == 1) {
printf("1 既不是质数也不是合数\n");
}
else {
if (flag == 0)
printf("%d 是质数\n", num);
else
printf("%d 不是质数\n", num);
}
return 0;
}
```
这个程序会提示用户输入一个正整数,然后进行判断是否为质数,并输出结果。程序中用flag变量标记是否为质数,如果在2到num/2的范围内找到了一个能够整除num的数,就将flag设为1,表示num不是质数。最后根据flag的值输出结果。如果输入的数为1,则直接输出1既不是质数也不是合数。
相关问题
用case语句判断1-20以内哪些是质数哪些是合数用VMware Workstation编写代码
在VMware Workstation中编写一个判断1到20之间质数和合数的简单代码,可以使用Java语言,因为VMware本身是一个虚拟机环境,支持运行Java程序。以下是使用`switch-case`语句的示例:
```java
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 20; i++) {
switch (i) {
case 1:
System.out.println(i + " 是合数"); // 1不是质数也不是合数,这里为了清晰通常标记为合数
break;
case 2:
System.out.println(i + " 是质数");
break;
default:
if (isPrime(i)) {
System.out.println(i + " 是质数");
} else {
System.out.println(i + " 是合数");
}
break;
}
}
}
// 判断是否为质数的辅助函数
private static boolean isPrime(int num) {
if (num < 2) return false;
for (int j = 2; j <= Math.sqrt(num); j++) { // 避免检查大于sqrt(n)的因子
if (num % j == 0) {
return false;
}
}
return true;
}
}
```
在这个例子中,我们遍历1到20的整数,对于每个数,如果是1或者2,则直接输出结果;如果不是1,就调用`isPrime`函数判断是否是质数。`isPrime`函数通过检查从2到数字平方根之间的所有因子来确定质数。
阅读全文