解题思路:
素数指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。

1.输入一个数number,若number为大于一的自然数,判断它是否为素数;

2.number为大于一的小数,不是素数;

3.number小于等于1,不是素数;


参考代码:

#include <stdio.h>
 
int main()
{
    double    number;
    int    i;
    scanf( "%lf", &number );
 
    if ( number > 1 && number == (int) number ) //大于1的自然数
    {
        for ( i = 2; i < number; i++ )
        {
            if ( (int) number % i == 0 )
            {
                printf( "not prime" );
                break;
            }
        }
        if ( i == number )
            printf( "prime" );
    }
    if ( number>1&&(int) number != number )  //大于一的小数
        printf( "not prime" );
 
    if ( number <= 1 )   //小于等于一的数
        printf( "not prime" );
 
    return(0);
}


点赞(23)
 

0.0分

35 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 60 条评论

赵老师好凶 5年前 回复TA
#include<stdio.h>
int fun(int a)
{
	int i,n=0;
	for (i = 2; i <= a; i++)
	{
		if (a%i == 0)
		{
			n++;
		}
	}
	return n;
}
int main()
{
	int a,n;
	scanf("%d\n", &a);
	n = fun(a);
	if (n == 1)
	{
		printf("prime");
	}
	else
	{
		printf("not prime");
	}
	return 0;
 }
爱丽丝 5年前 回复TA
没有自定义函数啊,符合题意吗???
塘中的鲸 5年前 回复TA
#include<stdio.h>
int a,i;
void prime()
{
	  for(i=2;i<=a;i++)
	  {
			if(a%i==0&&a!=i)
			{
				printf("not prime\n");
			}
		  else if(a%i==0&&a==i)
				printf("prime\n");
	  }
}
int main()
{
	scanf("%d",&a);
	if(a>1)
	{
	   prime();
	}
    if (a<=1)
        printf("not prime");
	return 0;
}
ZZCC 5年前 回复TA
#include <stdio.h>

int ss(int a);

int main()
{
	int x;
	
	scanf("%d",&x);
	ss(x);
	
	return 0;
}
int ss(int a)
{
	int i,count;
	if(a==2)
	{
		printf("prime\n");
	}
	for(count=2;count<a;count++)
	{
		
		if(a%count == 0)
		{
			printf("not prime\n");
			break;
		}
		else 
			printf("prime\n");
			break;
	}
			
}
ojoj 5年前 回复TA
第11行for循环,如果number=7,在循环内i最大等于6,在循环外i可以等于7是吗?
柏木英理 5年前 回复TA
#include<stdio.h>
void pdss(int x)
{for(int i=2;i<x;i++)
if(x%i==0)
{printf("not prime");
return;
}
printf("prime");
}
int main()
{int a;
scanf("%d",&a);
pdss(a);
return 0;
}
史努比 6年前 回复TA
#include<stdio.h>
#include<math.h>
int fun(int n)
{
	int i,leap=1,k;
	k=(int)sqrt(n);
	for(i=2;i<=k;i++)
	{
		if(n%i == 0)
		{
			leap=0;
			break;
		} 
	}
	if(leap)return 1;
	else return 0;
	leap=1;
}

int main()
{
	int a,c;
	while(1)
	{
		printf("please input a number:");
		scanf("%d",&a);
		if(fun(a)!= 0)
		printf("prime\n");
		else printf("not a prime\n");
	}
	return 0;
}
qianwen 6年前 回复TA
@Solotravel 赞
福卡 6年前 回复TA
哪位大神来帮我改一下代码,运行结果正确,但是就是提交的时候答案错误

#include<stdio.h>
int max(int i)
{
	int a,b;
	a=1;
	b=0;
	while(a<=i)
	{
		if(i%a==0)
		{
			b=b+a;
			a++;
		}
		else
		a++;
	}
	if(b==i+1)
	return 0;
	else
	return 1;
}
main()
{
	int n;
	scanf("%d",&n);
	if(max(n)==0)
	printf("prinme");
	else
	printf("not prinme");
}
Solotravel 6年前 回复TA
@kelen 还有,f记得初始化为0,不然输入的数小于1时也不正确