编写一个程序,判断输入的一个数是否为质数。 用例: 输入:5 输出:5是质数
时间: 2024-10-19 18:04:36 浏览: 34
要编写一个程序来判断一个数是否为质数,可以使用以下Python代码:
```python
def is_prime(n):
if n <= 1: # 质数定义中1不是质数
return False
elif n == 2: # 2是最小的质数
return True
elif n % 2 == 0: # 偶数除以2肯定有余数,排除非质数
return False
else: # 验证n是否能被3到sqrt(n)之间的奇数整除
sqrt_n = int(n**0.5)
for i in range(3, sqrt_n + 1, 2): # 只需要检查奇数因子
if n % i == 0:
return False
return True
# 测试用例
number = 5
if is_prime(number):
print(f"{number}是质数")
else:
print(f"{number}不是质数")
```
这段代码定义了一个名为`is_prime`的函数,接受一个整数作为参数。首先处理特殊情况,如小于等于1的情况以及2这个特例。接着,对于其他数,函数会检查其是否能被2以外的奇数整除。如果找到这样的因子,就返回`False`;如果没有,那么它是质数,返回`True`。
当测试用例5调用这个函数时,会得到预期的结果。
相关问题
用简单c语言代码实现:编写程序,将一个正整数分解质因数。例如,输入90,输出2*3*3*5。 测试用例: 输入 输出 90 2*3*3*5
你可以使用C语言的循环和条件判断来实现这个功能。下面是一个简单的函数,它接受一个正整数作为参数,并返回它的质因数分解:
```c
#include <stdio.h>
#include <stdbool.h>
// 函数用于检查是否是质数
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
// 主函数分解质因数
void prime_factors(int n) {
int factor = 2;
printf("%d", factor);
while (n > 1) {
if (n % factor == 0) {
printf("*%d", factor);
n /= factor;
} else {
factor++;
// 如果当前因子不是质数,尝试下一个
if (!is_prime(factor))
factor++;
}
}
printf("\n");
}
int main() {
int input;
printf("请输入一个正整数:");
scanf("%d", &input);
prime_factors(input); // 调用分解质因数函数
return 0;
}
```
测试用例:
输入:90
输出:2*3*3*5
用c语言编程键盘输入一个正整数,要求判断该数是否为素数。素数即质数,只能被1和它本身整除。特别说明,1不是素数。如果是素数,输出“YES”,否则输出“NO”。 输入格式: 输入只有一个用例,即一个整数n。 输出格式: 如果n是素数,输出“YES”,否则输出“NO”。 输入样例: 11 输出样例: 在这里给出相应的输出。例如: YES
以下是使用C语言编写的判断一个正整数是否为素数的代码:
```c
#include <stdio.h>
int main()
{
int n, i, isPrime = 1;
scanf("%d", &n);
if (n == 1) {
isPrime = 0;
} else if (n == 2) {
isPrime = 1;
} else {
for (i = 2; i < n; i++) {
if (n % i == 0) {
isPrime = 0;
break;
}
}
}
if (isPrime) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
代码思路如下:
1. 从键盘输入一个正整数n;
2. 如果n等于1,则不是素数;
3. 如果n等于2,则是素数;
4. 如果n大于2,则从2到n-1枚举每一个数,判断n能否被该数整除;
5. 如果n能被2到n-1之间的任意一个数整除,则不是素数;
6. 如果n不能被2到n-1之间的任何一个数整除,则是素数。
阅读全文