编写一个程序,只接受正整数输入,然后显示小于或者等于该数的素数。
编程分析 :
程序的功能是计算器指定范围的素数。按照素数的定义可以设计基本素数判别算法,即只能够被1和其本身整除的自然数就是素数。程序需要判别指定范围内所有的素数,因此需要使用循环的嵌套。外层循环指定判别范围,内层循环对该范围内的每一个整数进行判别。
#include<stdio.h>
int main(int argc,char *argv[])
{
int datum;
do{
printf("Enter a number (0 to exit):\n");
scanf("%d",&datum);
if(datum<2)
{
if(datum==0) break;
printf("%d is out of range,retry.\n",datum);
continue;
}
//读取用户输入的正整数
printf("You input %d ,so the prime from %d to 2 is:\n",datum,datum);
for (int i=datum;i>1;i--)
{
//输入数据到2的循环,循环判断区间内的每一个数是否为素数
int is_prime=1;
for (int j=2;j<=i/2;j++)
{
if(i%j==0)
{
is_prime=0;
break;
}//可以被1或其本身之外的数整除,表示is_prime为0,退出素数判别循环
}
if(is_prime==1)
printf("%d ",i);
}
printf("\n");
}while(datum!=0);
printf("Done! bye.");
return 0;
}