C++求n个连续自然合数

来源:百度知道 编辑:UC知道 时间:2024/06/02 06:50:24
填空:
#include<iostream.h>
class NUM{ //定义数据类NUM
private:
int n;
int *p;
public:
NUM(int n1)
//构造函数, 用n1初始化n, 并且用p动态开辟n个整数空间, 存放符合条件的合数
{ n=n1;
p=new ___________; //连续开辟n个整型空间, 将整型空间的首地址赋给p
}
int yes(int x) //判断x是否为合数, 若是返回1, 否则返回0
{ for(int i=2;i<=x/2;i++) //i从2循环到x/2, 依次判断x能否整除i
if(x%i==0) //若能整除, 说明x是合数
return 1; //直接返回1
return 0; //循环结束, 说明不能整除, 不是合数, 返回0
}
void fun(void) //寻找n个连续的合数
{ int j;
for(int i=3; 1 ;i++)//从3开始向上找, 因为未给上限, 所以一直循环(循环条件永远满足)
{ j=0; //对连续的合数计数, 所以在每次寻找之前清零
while(_____&&j<n)//当前的数i是合数且没有找到连续n个时, 循环向后寻找
{ p[j]=i;//边找边将合数赋给动态开辟的数组空间,赋完值后序号加1
j++;
i++; //继续判断下一个连续的数是否满足条件
}
if(j==n) //当找到n个连续的合数,退出上面的while循环
break; //操作完成, 用break强制退出for循环
}
}
void print(void) //输出满足条件的连续的合数
{ for(int i=0;i<n;i++)
co

Q1:p=new ___________; //连续开辟n个整型空间, 将整型空间的首地址赋给p
A1:p=new int[n];
------------------------------------------
Q2:while(_____&&j<n)//当前的数i是合数且没有找到连续n个时, 循环向后寻找
A2:while(yes(i)&&j<n)
------------------------------------------
Q3:__________;
//对这个对象完成寻找连续的合数的操作, 并把操作结果存放在动态开辟的空间中
A3:num.fun();
------------------------------------------
Q4:_________; //调用对象的成员函数, 输出连续的合数
A4:num.print();