❶ 求"求素数的c语言程序"
#include <stdio.h>
int main()
{
int a=0;
int num=0;
int i;
printf("输入一个整数:");
scanf("%d",&num);
for(i=2;i<num;i++){
if(num%i==0){
a++;
}
}
if(a==0){
printf("%d是素数。 ", num);
}else{
printf("%d不是素数。 ", num);
}
return 0;
}
(1)c语言质数程序扩展阅读:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
基本算法:若 k%m==0 则说明 k 不是素数。
判断整数n是否为素数——采用枚举法求解。
采用枚举算法解题的基本思路:
(1)确定枚举对象、枚举范围和判定条件;
(2)枚举可能的解,验证是否是问题的解。
枚举算法的一般结构:while循环。
参考资料来源:网络-枚举法
❷ 用C语言编写求质数的程序
//我分别写出了求素数和判断素数的程序
/*
//判断一个数是否为素数
#include<stdio.h>
#include<math.h>
int
isprime(int);
void
main()
{
int
inumber;
printf("请输入一个非负整数:
");
scanf("%d",&inumber);
if(isprime(inumber))
printf("%d是素数!\
",inumber);
else
printf("%d不是素数!\
",inumber);
}
int
isprime(int
a)
{
int
i;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return
0;
return
1;
}
*/
/*****************************************************/
//求某个正整数以内的素数
#include"stdio.h"
#include"math.h"
int
main(void)
{
int
count,i,m,n,num;
printf("请输入所求范围(正整数):
");
scanf("%d",&num);
count=0;//count记录素数的个数
printf("%d以内的素数为:\
",num);
for(m=2;m<=num;m++)
{
n=sqrt(m);
for(i=2;i<=n;i++)
{
if(m%i==0)
break;
}
if(i>n)//如果m是素数
{
printf("%6d",m);
count++;
if(count%10==0)//count为10的倍数时换行
printf("\
");
}
}
printf("\
");
return
0;
}
❸ 关于c语言1-100的质数的程序不懂
循环的判断是从2一直到不超过a的平方根的最大整数m.
比如说要检查67的话,那么循环就是从2到8(因为67的平方根是8.xx).
实际上从2一直检查到67也可以,但是到平方根m就够用了,
因为假如说存在一个整数因子x>m,使得a可以被x整除的话,那么其结果a/x一定小于m,
在循环没有进行到m之前实际上就已经被检查出来了,呵呵.
希望有用,谢谢采纳 ^_^
❹ 用C语言编写一个程序,输出1到100中的质数
#include<stdio.h>
#inlcude<math.h>
voidmain(){
intm,k;
puts("pleaseinputthenumber:");
scanf_s("%d",&m);
printf(":");
for(intj=1;j<=m;j++){
k=sqrt(j);
for(inti=2;i<=k+1;i++){
if(j%i==0){
break;
}
if(i==k+1){
printf("%d",j);
}
}
}
}
输入值是100就可以求100以下的质数,为了你方便我没有把数字写死。
❺ c语言判断是不是素数的程序
1、首先打开CodeBlocks,创建一个新项目。
❻ 用C语言编1到100之间的素数程序
程序及解释如下:
首先判断素数的算法:用一个数分别去除以2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
则有如下程序
{ int m,k,i;
for(m=1;m<=100;m=m+2) //m=m+2,因为偶数都不是素数,不用考虑,所以每次m+2.
{ k=sqrt(m) //先求这个数的平方跟
for(i=2;i<=k;i++) //然后用i(从2到k,即m的平方跟)去除m,
if(m%i==0) break; //如果能被整除, 则不是素数,break
if(i>=k+1) pritnf("%d",m); //如果i>k+1,则说明没有数能整除m.则m是素数
}
}
(6)c语言质数程序扩展阅读:
素数被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入质数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找质数的过程(分解质因数)过久,使即使取得信息也会无意义。
在汽车变速箱齿轮的设计上,相邻的两个大小齿轮齿数设计成质数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,可增强耐用度减少故障。
在害虫的生物生长周期与杀虫剂使用之间的关系上,杀虫剂的质数次数的使用也得到了证明。实验表明,质数次数地使用杀虫剂是最合理的:都是使用在害虫繁殖的高潮期,而且害虫很难产生抗药性。
以质数形式无规律变化的导弹和鱼雷可以使敌人不易拦截。
多数生物的生命周期也是质数(单位为年),这样可以最大程度地减少碰见天敌的机会。
参考资料:网络 素数
❼ 用C语言产生质数的程序怎么优化
对于第二个:
“无论中间结果如何,总是要逐个用p除以2到p-1之间的数。”
其实用p除以2到p的平方根(sqtr(p))之间的数就可以了”
❽ 用c语言编写一个程序,判断输入的数是否是素数(质数)。
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,n,flag;
int num;
/* 判断输入的数是否是素数 */
printf("请输入一个正整数:");
scanf("%d", &num);
for(i=2,flag=1; i<=(int)sqrt(num);i++)
{
if(num % i ==0)
{
flag=0;
break;
}
}
if(flag==1)
printf("%d 是一个素数。\n\n", num);
else
printf("%d 不是一个素数。\n\n", num);
/* 列出2~1000之间个位数是3或7的素数 */
printf("2~1000之间个位数是3或7的素数:\n");
for(i=2; i<1000;i++)
{
for(j=2,flag=1; j<=(int)sqrt(i); j++)
if(i%j==0)
{
flag=0;
break;
}
if(flag==1 && (i%10==3 || i%10==7))
printf("%d\t",i);
}
/* 输出10个2~1000之间个位数是3或7的素数 */
printf("\n\n2~1000之间个位数是3或7的素数:\n");
for(i=2,n=0; i<1000;i++)
{
for(j=2,flag=1; j<=(int)sqrt(i); j++)
if(i%j==0)
{
flag=0;
break;
}
if(flag==1 && (i%10==3 || i%10==7))
{
n++;
if(n<=10)
printf("%d\t",i);
}
if(n>10)
break;
}
return 0;
}
❾ 求素数的C语言程序!
素数,也叫质数,就是指除了1和该数本身以外,不能被其他任何整数整除的正数。
#include<stdio.h>#include<math.h>voidmain(){intm,k,i,n=0;for(m=1;m<=200;m=m+2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf("%5d",m);n=n+1;❿ C语言如何实现质数输出
通过除以小于被除数的所有数
a%d==0 则count‘++;
判断如果count==0,printf(“%d”,a);