打印100以内的素数(质数)C++实现
时间: 2023-09-08 13:08:17 浏览: 196
以下是例程:
```
#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以内的素数的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
for(int i = 2; i <= 100; i++) {
bool isPrime = true;
for(int j = 2; j < i; j++) {
if(i % j == 0) {
isPrime = false;
break;
}
}
if(isPrime) {
cout << i << " ";
}
}
return 0;
}
```
该程序使用嵌套循环遍历2到100之间的所有数字,对于每个数字,再使用内层循环判断其是否为素数。如果是素数,则输出该数字。
输出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;
}
```
阅读全文