一、基本素数问题回顾
1. 求给定范围start~end之间的所有素数(1<=start<end)
源代码:
#include <stdio.h>
#include <math.h>
int main()
{
int start,end;
int i,j,k,num,flag;
while(scanf("%d %d",&start,&end)!=EOF)
{
num=0;
for(i=start;i<=end;i++)
{
k=sqrt(i);
flag=1;
for(j=2;j<=k;j++)
{
if(i%j==0)
{
flag=0;
break;
}
}
if(flag==1) //此处写 j>=k+1 亦可
{
num++;
printf("%d ",i);
if(num%10==0)
printf("\n");
}
}
printf("\n%d~%d之间的素数个数为%d\n",start,end,num);
}
return 0;
}
程序截图:
2. 输入一个正整数n,判断该数是否为素数
源代码:
#include <stdio.h>
#include <math.h>
int is_Prime(int n)
{
int i;
int flag=1;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
return flag;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(is_Prime(n))
printf("%d是素数\n",n);
else
printf("%d不是素数\n",n);
}
return 0;
}
程序截图:
3. 输入一个正整数n,输出第n个素数(n<=10000)
源代码:
#include <stdi