打印100以内的素数(质数)C++实现
时间: 2023-09-08 10:08:17 浏览: 192
以下是例程:
```
#include <stdio.h>
int main()
{
int i,j,n,is_prime;
for (i=2; i<=100; i++)
{
is_prime = 1; // 假设 i 是质数
for (j=2; j<i; j++) // 从2到i-1枚举因子
{
if (i % j == 0) // 如果 i 可以被 j 整除,说明i不是质数
{
is_prime = 0;
break;
}
}
if (is_prime) // 如果 i 是质数,输出
{
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
该程序通过两层循环,枚举2到100之间的每个整数i是否是质数。对于每个i,它需要从2到i-1枚举因子j,判断i是否可以被j整除。如果i能被除以2到i-1之间的某个整数整除,说明i不是质数,程序把 `is_prime` 标记设为0,退出内层循环。如果i不能被任何一个2到i-1之间的整数整除,则说明i是质数,程序输出i。循环结束后,输出换行符以便使输出更美观。
相关问题
输出100以内的素数c++
要输出100以内的素数,可以使用筛选法。具体步骤如下:
1. 创建判断函数,判断输入的数是否为素数,不是则返回0,是则返回1;
2. 创建输出函数,先创建容量为101的数组并将其全部赋值为0,这样可以把1-100按顺序显示,便于理解。我们都知道1是特殊的素数,所以我们直接从2开始循环,直到99,把每个元素赋值为自己的序号值,即arr=2,arr=3,...,arr[99]=99以此类推。再利用判断函数对每一个数进行判断,是否为素数,若判定为非素数,则将其重新赋值为0,经过循环后,剩下来非0的所有数就都是非素数了。最后再将值不为0的所有元素全部输出,即为100以内的全部素数。
下面是C++代码实现:
```
#include<iostream>
#include<math.h>
using namespace std;
int is_prime(int x) // 判断是否为素数
{
for (int k = 2; k <= sqrt(x); k++)
{
if (x%k == 0)
return 0; //不是素数
}
return 1; //是素数
}
void get_prime() //输出100以内素数
{
int arr[101] = { 0 };
for (int i = 2; i < 100; i++)
{
arr[i] = i; //从2到99,令每一个元素等于自己的序号
}
for (int j = 2; j < 100; j++)
{
if (is_prime(arr[j]) == 0)
arr[j] = 0; //不是素数则将其标为0
}
for (int m = 2; m < 100; m++)
{
if (arr[m] != 0)
cout << arr[m] <<" ";
}
}
int main()
{
get_prime();
return 0;
}
```
输入100以内的素数c++
在C++中,编写一个程序用于找出100以内的所有素数可以采用循环遍历、条件判断以及质数验证的方式来完成。以下是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
// 判断是否为素数的辅助函数
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) { // 只需检查到根号即可
if (num % i == 0)
return false;
}
return true;
}
int main() {
cout << "Prime numbers between 1 and 100 are:\n";
for (int i = 2; i <= 100; ++i) {
if (isPrime(i))
cout << i << " ";
}
cout << endl;
return 0;
}
```
在这个程序中,`isPrime` 函数用于检查一个数是否为素数。`main` 函数则通过循环遍历2到100之间的整数,调用 `isPrime` 来过滤出素数,并将它们打印出来。
阅读全文