解题思路:
素数指在一个大于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 条评论

最佳皮蛋 2年前 回复TA
int main(){
	int a,count=0;
	scanf("%d",&a);
	for(int i=1;i<=a;i++){
		if(a%i==0){
			count++;
		}
	}
	if(count==2){
		printf("prime");
	}else {
		printf("not prime");
	}
}
Eionky 2年前 回复TA
#include <stdio.h>

void f(double x);
int main(void)
{
	double x;
	scanf("%lf",&x);
	f(x);
	return 0;
}
void f(double x)
{
	int i,count=0;
	if(x<0||x!=(int)x) goto L1;
	for(i=1;i<=(int)x;i++)
	{
		if((int)x%i==0) count++;
	}
	if(count==2) printf("prime");
	else L1:printf("not prime");
	return;
}
Eula 2年前 回复TA
@Eula 看错了,抱歉
Eula 2年前 回复TA
这是错的,输入121出来的是not。
INT橙 2年前 回复TA
楼主考虑的好全面啊,我也加上负数了
#include<stdio.h>

void panduan(int b);

void panduan(int b)
{
    int i,count=0;
    for(i=2;i<b;i++)
    {
        if(b%i==0)
        {
            count++;
        }
    }
    if(count==0)
    {
        printf("prime");
    }
    else
    {
        printf("not prime");
    }
}
int main()
{
    int a;
    scanf("%d",&a);
    if(a>1)
    {
        panduan(a);
    }
    else
    {
        printf("not prime");
    }
    return 0;
}
INT橙 2年前 回复TA
#include<stdio.h>

void panduan(int b);

void panduan(int b)
{
    int i,count=0;
    for(i=2;i<b;i++)
    {
        if(b%i==0)
        {
            count++;
        }
    }
     printf("%d",count);
    if(count==0)
    {
        printf("prime");
    }
    else
    {
        printf("not prime");
    }
}
int main()
{
    int a;
    scanf("%d",&a);
    panduan(a);
    return 0;
}
1021王俊峰 2年前 回复TA
#include<stdio.h>
char sushu(int n)//自定义函数处理素数
{
	int i;
	if(n>1)
	{
		for(i=2;i<n;i++)
		{
			if(n%i==0)
			{
				printf("not prime");
			break;
			}
		}
		 if(n==i)
		printf("prime"); 
	}
	if(n<=1)
	printf("not prime");
}
      int main()
      {
        int n;
        scanf("%d",&n);
        sushu(n);
      	return 0;
	  }
uq_99487838869 3年前 回复TA
#include <stdio.h>
int s(int x);
int main(int argc, char *argv[]) 
{
	int x;
	scanf("%d",&x);
	s(x);
	return 0;
}

int s(int x)
{
	int i;
	int t;
	for(i=2;i<x;i++)
	{
		if(x%i==0)
		{
			t=1; 
		}
	}

	if(t==1)
	{
		printf("prime");
	}
	else
	{
		printf("not prime");
	}
}
为啥只有五十分
秋清深 3年前 回复TA
@Nvemiy 程序没啥问题。但是是not不是no所以50%错误
秋清深 3年前 回复TA
@EasonXin 你这个是错的,非2的倍数全都判断为素数