瞎折腾


私信TA

用户名:chenbin

访问量:58122

签 名:

等  级
排  名 52
经  验 9367
参赛次数 0
文章发表 74
年  龄 0
在职情况 学生
学  校 中南大学
专  业

  自我简介:

解题思路:
题目要求是让我们写两个函数,一个是判断素数函数judge,另一个是主函数main;在judge中判断传过来的实参m要先判断是否是大于等于2的数,只有m>=2才可以判定它是不是素数,所以说输入的数要符合要求。接下来就是如何判断是素数,素数是指除了1和本身以外不能再被其他数整除的数,于是利用取余法,设for(i=2;i<m;i++) if(m%i==0),则不是素数,break终止循环;否则如果是素数,也要break终止循环。



注意事项:
无论是判断得到是素数或者不是素数,只要得到结果,就立即break终止循环。




参考代码:

#include<stdio.h>

int judge(int m)

{

    int i;

    if(m>=2)

    {

        for(i=2;i<m;i++)

        {

            if(m%i==0)

            {

                printf("not prime\n");

                break;

            }

            else

            {    

                printf("prime\n");

                break;

            }

        }

    }

    return 0;

}

int main()

{

    int m;

    scanf("%d",&m);

    judge(m);

    return 0;

}


 

0.0分

1 人评分

  评论区

这代码是有问题的,在for里的else中,只能够判断是不是奇数而不是素数,仅仅是用i=2来进行判断,运行输入15这种奇数也是输出的prime
2022-11-22 16:40:28 | |
#include<stdio.h>
#include<math.h>
void panduan(int x);
int main()
{
	int n;
	scanf("%d",&n);
	panduan(n);
	return 0;
}
void panduan(int x)
{
	int tag=0;
	for(int i=2;i<=sqrt(x);i++)
		if(x%i==0)
			tag++;
	if(tag==0)
		printf("prime\n");
	else
		printf("not prime\n");
}
2022-11-21 18:53:47 | |
#include <stdio.h>
int judge(int m)
{
	int i;
	if(m==2)
	{
		printf("prime\n");
	}
	else if(m>2)
	{
		for(i=2;i<m;i++)
		{
			if(m%i==0)
			{
				printf("not prime\n");
				break;
			}
			else
			{
				printf("prime\n");
				break;
			}
		}
	}
}
int main()
{
	int m;
	scanf("%d",&m);
	judge(m);
	return 0;
}
再来个if else就好了。
2022-11-12 16:41:33 | |
2的时候有问题
2019-07-17 17:05:12 | |
  • «
  • 1
  • »