#include
成都创新互联是一家专注于做网站、网站设计与策划设计,罗平网站建设哪家好?成都创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:罗平等地区。罗平做网站价格咨询:028-86922220
"stdio.h"
#include
"math.h"//判断一个整数是否为素数
bool
prime(int
x)
{
int
i;
for(i=2;i=
sqrt(x);i++)
{
if(x%i==0)
return
false;
}
return
true;
} //判断一个整数(1位或多位)是否每一位都是素数
bool
allPrime(int
a)
{
if(prime(a%10))
//如果个位是素数
{
a=a/10;
return
allPrime(a);
}
else
return
false;
}//
打印出1-5000内满足题意的素数
void
printPrime()
{
int
i;
int
a=0;
for(
i=11;i5000;)
//
1-9
不用再判断了,只有一位。10和5000很明显也不用去判断了,不是素数
{
if(prime(i))
//
如果i是素数,判断个位是不是素数,如果个位不是,不满足第二个条件
{
if(prime(i%10))
//判断个位
{
a=i/10
;
//a就是去掉个位后的数
if(prime(a))
//判断a
是否是素数,如果是,再判断a每一位是否是素数
{
if(allPrime(a))
printf("%d\n",i);
} }
}
i+=2;
}
}int
main()
{
printPrime();
}
1、写我们的头文件和主函数。写好我们的开头。
2、编写定义变量,我们语言定义一个i来用于后面的for循环。
3、我们输入一个数,在那之前我们要有一个printf()提示一下。
4、利用for循环看一看从2到n-1是否能被n整除,如果能就要break。
5、判断素数,如果程序正常结束,就i>=n,说明他就是素数。
6、如果通过break结束,他就会in,所以他就不是素数。
7、输出最后结果。
prime的作用就是判断一个数是否为素数(也称“质数”)。
例如:
#include stdio.h
int IsPrime(int n)
{
if (n = 1) return 0;
if (n % 2 == 0) return n == 2;
for (int i = 3; ; i += 2)
{
if (i n/i) break; // 等价于 i*i n, 不用开方
if (n % i == 0) return 0;
}
return 1;
}
int main()
{
for (int n = 100; n = 300; n++)
if (IsPrime(n))
printf("%4d", n);
return 0;
}
扩展资料:
prime算法
prime是以点为基础出发进行检索最小生成树的一种贪心算法。
思想:
将所有的点分成两类,一类是已经放到碗里的,另一类是还没有有放到碗里的,可以通过一个数组bool visit[]来记录这个点到底是属于第一类还是属于第二类之后每一个周期索要进行的操作,找出一一定范围内路径的的范围的最小值。
所有的从第一类点直接连接到第二类点的边将最小的边记录下来(这个也就是生成树中的一条边)将这个新边(这个一个连接第一类点和第二类点的边)连到的那个第二类点归类到第一类点中,之后重复这个操作,最终消灭所有的第二类点。
假设有n个节点,我最初给出一个点,以这个点开始进行搜索,这个时候该点为第一类点,其余n-1个点为第二类点。之后进行n-1次操作,一共选出了n-1个边(符合树的性质),构成了最小生成树。