C语言之素数

简介: 本文介绍了两种检查素数的方法。试除法是通过将一个数除以小于它的所有数,若有余数为0则非素数,如验证99(非素数)可被3整除。另一种是试除开平方法,非素数可拆为两数相乘,若其中一数大于其平方根,则该数为素数。示例代码提供了C++实现。

1、试除法

试除法就是把每一个数都拿它之前的所有数来除一遍,如果出现余数为0,则证明不是素数。


例如:要验证99是否为素数,就拿1-98来给99除。当除到3时发现余数是0,所以99不是素数


代码如下:


//素数
#include<stdio.h>
int main()
{
int i,j=0;
for(i=2;i<=100;i++)//这里可以直接+=2,因为偶数不可能是素数
{
for(j=2;j<=i;j++)
{
if(i%j==0)
break;
}
if(i==j)
printf("%d ",i);
}
return 0;
}

2、试除开平方法

一个非素数可以拆成两个数相乘,这两个数的其中一个一定小子等于这个非素数的开平方            例如:20可以拆成4x5,4是小子等于根号20的。


如果出现了这两个数有其中一个大子该数的开平方,证明该数是素数


例如:19只能拆成1和19,19是大于根号19的。


代码如下:


//素数
#include<stdio.h>
int main()
{
int i,j=0;
for(i=2;i<=100;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
break;
}
if(j>sqrt(i)&&i!=1)
printf("%d ",i);
}
return 0;
}
目录
相关文章
|
1月前
|
C语言
C语言之完数、素数、回文数合集
C语言之完数、素数、回文数合集
|
1月前
|
C语言
【01】判断素数/质数(C语言)
【01】判断素数/质数(C语言)
|
1月前
|
C语言
C语言Oj题判断素数几种方式详解
输入一个数判断它是不是素数,并且不是的情况把它打印出来不是素数。
|
1月前
|
C语言
c语言编程练习题:7-33 统计素数并求和
c语言编程练习题:7-33 统计素数并求和
28 0
|
1天前
|
C语言
【C语言刷题每日一题】——打印100到200之间的素数
【C语言刷题每日一题】——打印100到200之间的素数
|
3天前
|
C语言 Windows
C语言素数的不同求法
C|素数的不同求法及在线测试比较
|
5天前
|
C语言
C语言----寻找100~999范围内的质数--素数
C语言----寻找100~999范围内的质数--素数
|
5天前
|
C语言
C语言---函数----100~n之间的素数
C语言---函数----100~n之间的素数
|
1月前
|
C语言
【C语言】输入一个数n,输出从n到n+100的范围内所有的素数,并统计素数的个数
【C语言】输入一个数n,输出从n到n+100的范围内所有的素数,并统计素数的个数
38 0
|
2天前
|
C语言
C语言初阶:如何判断是否为素数并且输出
C语言初阶:如何判断是否为素数并且输出
8 0