2024年3月10日发(作者:)
质数中的质数
给定整数N(2 这样的4位质数,因为7、73和733也均为质数。在标准输出上按升序输出所有符合要求 的质数。例如,对于2,输出下列9个数: 23 29 31 37 53 59 71 73 79 问题分析:首先此问题归结到底还是求素数的问题。求素数的问题是最基本的程序之 一。而此问题需要解决的是如何求一个数的前面的那些位数是否是素数的问题。 我们可以按整除运算,再利用循环解决此问题。 1、 输入所需要进行运算的位数num 2、 调用函数fun(),此函数命名按标识符命名规则命名 3、 fun()函数将解决此问题。 fun()函数的思想是利用循环,从2*10^num+1开始,到10^(num+1)结束。 取这个循环中这个数的首位,进行判断,是否为4、6、8,如果是则加上10^num, 再进行后面的循环。因为,4、6、8不是素数,所以排除以这些数为首位的数。循环变量 每次加2,因为素数除2外都是奇数。 4、 调用yprime(i,num),判断数i是否为所求的数。 判断原数是否为素数,再依次去掉后面的数,看是否为素数。 最后如果全部满足,则返回1,否则返回0; 5、 判断素数,调用函数prime(n)。 程序如下: #include #include #include void fun(int num); int yprime(int n,int num); int prime(int n);//n是否是素数 int main() { int num=0;
发布评论