#include <stdio.h>
int main(){
int n;
int i,j,count=0;
int m=0;
int t=0;
printf ("请输入一个素数:");
scanf ("%d",&n);
for (j=2;j<n;j++)
{
if (n%j == 0)
m++;
}
if (m==0)
{
t=1; //*
}else
printf ("%d不是素数",n);
if (t==1)//*当输入的数不是素数时t==0 下述语句不进行
{
for (i=1;i<=n;i++) // n递增循环且不改变n值
{
for (j=2;j<i;j++)//内层循环用于判断是不是素数 每次外循环开始j都等于2
{
if(i%j==0) //表示i不是素数,break到c16(*)
{
break;
}
}
if (i==j)//表示i是素数,输出该素数;(*i可以被j整除且i!=j,i不是素数不输出)
{
count++;//计数
}
}
printf ("\n%d是第%d个素数\n",n,count);
}
return 0;
}
反思:这只是把两端代码结合起来,感觉十分繁琐,不知道有没有更简便的解决办法。