目录
引言
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。
希望以下代码对大家有用。
判断一个数是否为素数
/*
Name: 判断某数是否为素数
Copyright: 2024/5/7 AChenXunmeng
Author: AChen
Date: 07/05/24 15:00
Description:
*/
#include <stdio.h>
int main()
{
int number, i, n = 0;
scanf("%d", &number);
if (number > 1)
{
for (i = 2; i <= number / 2; ++i)
{
if (number % i == 0)
{
n = 1;
break;
}
}
if (n == 0)
printf("%d是素数\n", number);
else
printf("%d不是素数\n", number);
}
else
printf("至少为2\n");
return 0;
}
运行效果:
某数以内的素数
/*
Name: 输出某数以内的素数
Copyright: 2024/5/7 AChenXunmeng
Author: AChen
Date: 07/05/24 14:55
Description:
*/
#include<stdio.h>
int main()
{
int small,large,i,n,count=0;
small=2;
scanf("%d",&large);
while(small<=large)
{
n=0;
for(i=2; i<=small/2; ++i)
{
if(small%i==0)
{
n=1;
break;
}
}
if (n==0)
{
printf("%d ",small);
++count;
if(count%10==0)printf("\n");
}
++small;
}
return 0;
}
运行效果:
两数之间的素数
/*
Name: 求两个数之间的素数
Copyright: 24-05-07 AChenXunmeng
Author: AChen
Date: 07/05/24 16:23
Description:
*/
#include <stdio.h>
int main()
{
int small, large, i, n, count = 0;
scanf("%d %d", &small, &large);
if (small > 1)
{
while (small <= large)
{
n = 0;
for (i = 2; i <= small / 2; ++i)
{
if (small % i == 0)
{
n = 1;
break;
}
}
if (n == 0)
{
printf("%d ", small);
++count;
if (count % 10 == 0)
printf("\n");
}
++small;
}
}
else
printf("最小数至少为2\n");
return 0;
}
运行效果:
结语
也可以将 number/2 或 small/2 换成number的平方根,似乎速度会更快一些(在要计算的数极多的情况下),不过这就已经足够了。
一定要判断是否大于1,否则输出的素数可能包含1。
登高望断天涯路,掷身前程不忆昔。
By AChenXunmeng
24-05-07 18:16