写一个求素数的程序 c++
时间: 2023-03-10 21:18:55 浏览: 60
我可以给你一个简单的程序:#include <stdio.h>int main()
{
int number;
int i;
int flag;
printf("请输入一个正整数:");
scanf("%d", &number); flag = 0;
for(i=2; i<number; i++)
{
if(number%i == 0)
{
flag = 1;
break;
}
}
if(flag == 0)
{
printf("这是一个素数。\n");
}
else
{
printf("这不是一个素数。\n");
}
return 0;
}
相关问题
用c++写一个求素数的程序
好的,以下是求素数的C语言程序:
#include <stdio.h>
#include <math.h>
int isPrime(int num) {
int i;
if (num < 2) {
return 0;
}
for (i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n, i;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d以内的素数有:\n", n);
for (i = 2; i <= n; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
写一个输出素数的c++程序
### 回答1:
这是一个简单的程序,它会输出 2 到 100 之间的所有素数:
```
#include <stdio.h>
#include <stdbool.h>
int main(void) {
for (int i = 2; i <= 100; i++) {
bool is_prime = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
is_prime = false;
break;
}
}
if (is_prime) {
printf("%d\n", i);
}
}
return 0;
}
```
程序的流程如下:
1. 在 `for` 循环中遍历 2 到 100 的所有数。
2. 对于每个数 `i`,再使用一个 `for` 循环检查是否有小于 `i` 的数能够整除 `i`。
3. 如果找到能够整除 `i` 的数,就说明 `i` 不是素数,将变量 `is_prime` 设为 `false` 并终止循环。
4. 如果没有找到能够整除 `i` 的数,就说明 `i` 是素数,输出 `i` 并继续遍历。
### 回答2:
下面是一个输出素数的C程序示例:
```c
#include <stdio.h>
int isPrime(int num) {
// 负数和0,1均不是素数
if (num <= 1) {
return 0;
}
// 从2开始遍历到 num-1,判断是否有能整除num的数
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return 0; // 能整除num,不是素数
}
}
return 1; // 不能整除num,是素数
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("从1到%d的素数有:", n);
// 遍历从1到n,逐个判断
for (int i = 1; i <= n; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
return 0;
}
```
这个程序首先定义了一个isPrime()函数,用于判断一个数是否是素数。然后在主函数中,通过用户输入的一个正整数n,遍历从1到n,逐个判断是否是素数,然后输出所有的素数。