#include<math.h>
int lsPrime(int n)
int main()
{
int N, i, k, n = 0
printf("input N:\n")
scanf("%d", &N)
while (N != 0)
{
n = N % 10 + n * 10
N = N / 10
}
for (i = 1i <= ni++)
{
if (lsPrime(i) == 1)
{
printf("%d\t", i)
}
}
return 0
}
int lsPrime(int n) //是素数返回1,否则返回0
{
int i, k
k = (int) sqrt(n)
for (i = 2i <= ki++)
{
if (n % i == 0)
break
}
if (i >k &&n >1)
return 1
else
return 0
}
#include<stdio.h>//头文件
int main()//主函数
{
int number,i//定义变量
printf("请随机输入一个数:")//提示语句
scanf("%d",&number)//键盘输入需要判断的数
for(i=2i<=number-1i++)//循环从2开始,到这个数的掐前一个数为止
{
if(number%i==0)//如果取余结果为0
break
}
if(i<number)
{
printf("%d不是素数",number)
}
else
{
printf("%d是素数",number)
}
return 0//函数返回值为0
}
#include<stdio.h>
int main()
{
int i,j
int count=0
for(i=2i<100i++)
{
for(j=2j<=i/2j++)
if(i%j==0)//如果i能被j整除 就不是质数 退出循环
break
if(j>i/2)
{
count++
printf("%-3d",i)
if(count%5==0)//当每一行有5个数时 换行
printf("\n")
}
}
return 0
}
for(j=2j<=i/2j++)中的 j<=i/2是表示 从j=2开始遍历到j=i/2 看看2~i/2中能否整除i
如果都不能 说明i是质数(也就是j>i/2)
如果有1个及以上能整除i 说明i不是质数
for()
{
}
//for循环结束之后 j的值是大于i/2的 因为for循环的条件是:j<=i/2
//因此 当j>i/2时 for循环结束
if(j>i/2)
这里当且仅当2~i/2都不能整除i时 也就是j>i/2 才说明i是质数
参考资料
输出100以内的质数,用c语言如何编写?.百度知道[引用时间2017-12-25]