用筛法求100以内的素数辩兆:
#include<stdio.h>
int main()
{
int a[101],i,j
for(i=2i<=100i++)
a[i]=1
for(i=2i<=10i++)
for(j=i+ij<=100j+=i)
a[j]=0
printf("100以携铅租内的素数:\n")
for(i=2i<=100i++)
if(a[i])printf("激让%d ",i)
printf("\n")
getch()
return 0
}
#include <stdio.h>
int main()
{
int a=0
int num=0
int i
printf("输入一个整数:")
scanf("%d",&num)
for(i=2i<numi++){
if(num%i==0){
中慧 a++
}
}
if(a==0){
printf("%d是素数。\n", num)
}else{
printf("%d不是素数。\n", num)
}
return 0
}
扩展资料:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合卖肢答数。
基本算法:若 k%m==0 则说明 k 不是素数。
判断整数n是否为素饥纯数——采用枚举法求解。
采用枚举算法解题的基本思路:
(1)确定枚举对象、枚举范围和判定条件;
(2)枚举可能的解,验证是否是问题的解。
枚举算法的一般结构:while循环。
参考资料来源:百度百科-枚举法
源代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
int a, b, i, flag
printf("输入两个整数: "毁友)
scanf("%d %d", &a, &b)
printf("%d与%d之间的素数为: ", a, b)
while(a<b)
{
flag=0
for(i=2i<=sqrt(a)i++)
{
if(a%i==0)
{
flag=1
break
}
}
if(flag==0)
printf("%d ", a)
a++
}
return 0
}
扩展资料
一个偶数总能表示为两行哗个素数之和的源代码如下:档余行
#include "stdio.h"
#include "math.h"
main()
{
int a,b,c,d
scanf("%d",&a)
for(b=3b<=a/2b+=2)
{
for(c=2c<=sqrt(b)c++)
if(b%c==0) break
if(c>sqrt(b))
d=a-b
else
break
for(c=2c<=sqrt(d)c++)
if(d%c==0)
break
if(c>sqrt(d))
printf("%d=%d+%d\n",a,b,d)
}
}
for(int i=5i<=sqrt(x)i+=6)
if(x%i==0||x%(i+2)==0)
{
printf("%d不是素数",x)
return 0
}
printf("%d是素数",x)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)