当前位置:首页 » 编程语言 » c语言求质素
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求质素

发布时间: 2023-05-01 15:34:27

c语言怎么求素数

除2以外,素数皆为奇数,所以对2单独处理,从3开始,将100以内的奇数逐一进行素数考察,是则输出,不是则跳过。另设一计数变量控制换行,每输出5个素数添加一个回车。代码如下:

#include "stdio.h"

int main(int argc,char *argv[]){

int i,n,t;

pr

#include

#include

main()

{

int a,i,flag,count=0;

for(a=1;a <=100;a++)

{

flag=0;

for(i=2;i

#include int main()

{

int i,n,k,b;

for(i=1,b=1;i<=100;i++)

{

for(n=2;n {

k=i%n;

if(k==0)

break;

}

(1)c语言求质素扩展阅读:

C语言注意事项:

1、预编译命令不是语言语句,不使用分号,不占用运行时间。

2、在IDE中通常包括编辑器,编译器,汇编器和链接器,在这个过程中是语言等级逐级降低的过程,从最高级的c语言到中级语言汇编语言再到低级语言机器语言,编辑器生成文桥如察件为.c文件,编译器生成的文件为obj汇编器生成的文件橡租为.0文件,链接器生成的是exe文件。

3、注意 return和exit的区别, return是让本函数运行结束,而exit是让本程序运行结束。

4、在指针定义时,一定要进行初始化,否则就会出现意想不到的错误,如果不能找到对应地址赋值,那就赋给NULL(注意大写)。

5、gets可以 scanf办成办不成的事,就是可以接受空格,puts在最后会输出一个换敏茄行。

Ⅱ C语言编程、求100以内所有质素数

楼主大括号都未能匹配,{有两个,}有三个,编译就通过不了的。
刚写了份代码,已调试通过,供楼主参考:
#include

main(void)
{
int
i,t;
for(i=1;
i<=100;
i++)
{
if(i
==
1)
continue;
if(i
==
2)
{
printf("%d,",i);
continue;
}
for(t=2;
t
<=
i/2;
t++)
{
if((i%t)
==
0)
break;
}
if(t
>
i/2)
{
printf("%d,",i);
}
}
printf("\n");
return
0;
}
输出的结果为:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,
再说说楼主代码中一些错误:
1.之前提到编译上就不能通过。{和}个数未能匹配。
2.
if(100%i!=0)
break;
该语句的含义是100除以i的虚祥余数不等于0则跳出循环,当为1时,就已经跳出循环了。而且这对于质素的判断是毫无意义的,可以删除。
3.
for(t=1;t<=i;t++)
质数的判断的话,t应该是从2开始计差码搏数的,否则i%1肯定是等于0的。应修改为for(t=2;
t<=i;
t++)。此外,这里可以参考我的代码,t<=i/2即可,用以提高模答提升效率。
希望对楼主有所帮助。谢谢。

Ⅲ C语言问题,关于质素的推导,求大大解释!

num%i 这个操作 叫模除 或陆雹者叫取余。

是求num除以i的余数搭悉前的。
于是 num%i==0 这个就是整除了。
于是 for循环 就是求知清因子的个数。
如果 除了1和本身外,因子个数为0,那么 就是素数了。

Ⅳ 求"求素数的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;

}

(4)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语言计算质数

#include<stdio.h>
staticcharm[8000000];
staticintprime[500000];
#defineMAX_N7368787
voidset(void)
{
inti,j;
for(i=2;i<=MAX_N;i++)
{
if(m[i]==1)continue;
for(j=i+i;j<=MAX_N;j+=i)
m[j]=1;
}
for(i=j=0;i<=MAX_N;i++)
if(m[i]==0)prime[j++]=i;
}

intmain()
{
intm,n,;
while(~scanf("%d%d",&m,&n))
{

for(i=m;i<=n;i++)
{
printf("%d",prime[i-1]);
if(i==n||(i-m)%10==9)putchar(' ');
elseputchar('');
}
}
return0;
}

Ⅶ 计算1到1000所有素数(质素)的和 C语言 求解题思路 最好有代码 仔细研究下

int i,j;
for(i=1;i<=1000;i++)
{
for(j=2;j<i/2;j++)
{
if(i%j==0)
break;
}
if(j>=i/2)
printf("%d ",i);
}
素数就是只能被1和兄型毕它本身整除。如果1到该素数租搏的一羡芹半都没有被整除的,以后就没有能被整除的数了。

Ⅷ c语言求素数的算法

根据素数的性质,代码设计如下:

设计一:判断n是否能被1~n-1整除,不能整除为素数

#include<stdio.h>

int main()

{

int i, n;

scanf("%d", &n);

for (i = 2; i < n ; i++)

{

if (n%i == 0)

break;

}

if (i < n) printf("This is not a prime.");

else printf("This is a prime.");

return 0;

}

设计二:判断n是否能被2~√n间的整数整除,不能整除为素数

#include<stdio.h>

#include<math.h>

int main()

{

int n,i;

double k;

scanf("%d", &n);

k = sqrt(n);

for (i = 2; i <= k;i++)

{

if (n%i == 0) break;

}

if (i <=k) printf("This is not a prime.");

else printf("This is a prime");

return 0;

}

(8)c语言求质素扩展阅读:

1.素数的定义是只能被1和他本身整除,1不是素数.因此要判断一个数是否为素数.就要判断它能不能被比他小的所有素数整除,这是一个算法.(写到算法时,我只能写出用它除以比他小的所有数,造成运算速度低下)

2.如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。由此可以得到一个法2较快的素数判断算法

Ⅸ 求质数c语言

  • #include "stdafx.h"

    int main(int argc, char* argv[])

    {

    int a=0;

    int b=2;

    int i=0;

    int n1=0;

    int n2=0;

    printf("请输入所耐启蚂昌埋要求哪个范围的质数 ");

    scanf("%d %d",&n1,&n2);

    for(a=n1;a<=n2;a++)

    {

    for(b=2;b<=a-1;b++)

    if(a%b==0) break;

    if(a<=b)

    printf("质数: %d ",a);

    }

    printf(" ");

    return 0;

    }

  • 3

    输入你所要求某个范围的质数,两个数用【空格键】隔开。如输入"180 200",

    输出:

    质数: 181

    质数: 191

    质旁顷数: 193

    质数: 197

    质数: 199

Ⅹ C语言中如何求质数

#include<stdio.h>宏亏顷

int isprime(int n)

{ for(int i=2; i*i<=n; i++)

if(n%i==0)return 0;

return n>蔽陆1;

}

int main()

{ int i,n;

scanf("%d",&n);

for(i=2; i<n; i++)

if(isprime(i))

printf("%5d"空大,i);

return 0;

}