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;
}
目录
相关文章
|
9月前
|
C语言
C语言之完数、素数、回文数合集
C语言之完数、素数、回文数合集
|
9月前
|
C语言
【01】判断素数/质数(C语言)
【01】判断素数/质数(C语言)
|
9月前
|
C语言
C语言Oj题判断素数几种方式详解
输入一个数判断它是不是素数,并且不是的情况把它打印出来不是素数。
|
1月前
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
62 23
|
8月前
|
C语言
C语言初阶:如何判断是否为素数并且输出
C语言初阶:如何判断是否为素数并且输出
57 0
|
9月前
|
C语言
【C语言】输入一个数n,输出从n到n+100的范围内所有的素数,并统计素数的个数
【C语言】输入一个数n,输出从n到n+100的范围内所有的素数,并统计素数的个数
438 0
|
8月前
|
C语言
【C语言刷题每日一题】——打印100到200之间的素数
【C语言刷题每日一题】——打印100到200之间的素数
|
8月前
|
C语言
C语言----寻找100~999范围内的质数--素数
C语言----寻找100~999范围内的质数--素数
|
8月前
|
C语言 Windows
C语言素数的不同求法
C|素数的不同求法及在线测试比较
|
8月前
|
C语言
C语言---函数----100~n之间的素数
C语言---函数----100~n之间的素数