c语言:输出范围内的质数|练习题

2023-12-27 14:41:42

一、题目
输入一个数n,输出n之内的所有质数
如图:

e646deabebdb4106b93fa5928f0d7692.jpg

?

二、思路分析
1、设置一个数num,从2开始,不断作+1操作,作为被除数
2、用一个不断自+1的数,除以num,如果num不能被整除,则为质数
3、例子:
输入num=4,则num里面有2、3、4三个数,
把2除以2;
3除以2、除以3;
4除以2、除以3、除以4。
当i=2时,除到最后一个数2前,i不能被整除,则i为质数
当i=3时,除到最后一个数3前,i不能被整除,则i为质数
当i=4时,除到最后一个数4前,i不能被整除,则i为质数

三、代码图片【带注释】

c56df94e3ecc4c0b82e54376d5a839cc.jpg

?

四、源代码【带注释】

#include?
int main()
{
? ? int num=0;
cc:
? ? printf("输入一个大于1数字:");
? ? scanf("%d",&num);

? ? //当num小于等于1时,输入有误
? ? if(num<=1)
? ? {
? ? ? ? printf("输入有误,请重新输入\n");
? ? ? ? goto cc;
? ? }
? ? panDuanZhiShu(num);//调用[判断质数]函数
}

panDuanZhiShu(int num)
{
? ? int i,j;
? ? printf("\n%d以内的质数为:",num);
? ? for(i=2; i<=num; i++)
? ? {
? ? ? ? for(j=2; j<=i; j++)
? ? ? ? {
? ? ? ? ? ? //被除数能被整除,则跳出第一重循环
? ? ? ? ? ? if(i%j==0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? //注意:当循环结束时,如果j循环到最后一个数为i,则输出i
? ? ? ? //比如:i=5,当i=5除以j=2、3、4、5都无法整除,则跳出循环
? ? ? ? //当j=5时,即已除了除1和其自身外的所有的数,也无法整除
? ? ? ? //所以,该数为质数
? ? ? ? if(j==i)
? ? ? ? {
? ? ? ? ? ? printf("%d ",i);
? ? ? ? }
? ? }
}

五、运行结果

9c93b074fc444a8d9c9257184f7499c4.jpg

?

关注我,?每天分享编程知识

文章来源:https://blog.csdn.net/2301_76173427/article/details/135237030
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。