重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
楼上说的不错,判断一个数是否是素数就这么算就行。但是楼上程序写的有瑕疵,sqrt不应该写在for里面,而是在for前面赋值,因为sqrt很耗时间。
在合阳等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都网站建设 网站设计制作按需求定制开发,公司网站建设,企业网站建设,成都品牌网站建设,网络营销推广,成都外贸网站建设公司,合阳网站建设费用合理。
如果是求类似于1000以内有多少个素数的话,每个素数的判断方式就不是判断是否能整除从2开始到该数的开方,而是判断是否能整除从2开始到该数开方之间的素数。这样效率会高很多。
#include stdio.h
int fun(int x)//
{
if(x2)
return 0;//返回0,非素数
for(int i=2;i*i=x;i++)
if(x%i==0)
return 0;
return 1;//返回1,素数
}
int main()
{
int n;
scanf("%d",n);
if(fun(n)==1)
printf("%d是素数\n",n);
else
printf("%d不是素数\n",n);
return 0;
}
#includestdio.h
#includemath.h
void main()
{
int input_x,result;
printf("Please enter a INT number: ");
scanf("%d",input_x);
result = prime_number(input_x);
printf("%d, ",input_x);
if(result)
{
printf("It is a prime number");
}
else
{
printf("It is 'not' a prime number");
}
}
prime_number(num)
{
int a,i,temp;
temp = 0;
a=sqrt(num);
for(i=2;i=a;i++)
{
if(num%i==0)
{
temp = 1;
break;
}
}
if(temp == 0)
return 1;
return 0;
}
#include stdio.h
#include math.h
int jugde(int x)
{
int i;
if(x 2)
return 0;
for(i = 2; i = sqrt(x); ++i)
if(x%i == 0)
return 0;
return 1;
}
int main()
{
int i;
for(i = 101; i 1000; i+=2)
if(jugde(i) == 1)
printf("%d ", i);
return 0;
}
#include stdio.h
#include math.h
//判断是否为素数的函数
int isPrime(int n)
{
int i=2;
while(i=(int)sqrt(n))
{
if(n%i == 0)
return 0; //不是素数,直接返回0
else
i++;
}
return 1;
}
int main()
{
int n,i;
printf("输入一个正整数: ");
scanf("%d",n);
for(i=2;i=n;i++)
{
if(isPrime(i)) //调用函数,如果该数为素数,则输出
printf("%d ",i);
}
printf("\n");
return 0;
}
示例运行结果:
输入一个正整数: 50
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47