当前位置:首页 » 编程软件 » 编程求质数

编程求质数

发布时间: 2022-08-24 10:04:22

① 用c语言编写求质数的程序

//我分别写出了求素数和判断素数的程序
/*
//判断一个数是否为素数
#include<stdio.h>
#include<math.h>

int isprime(int);
void main()
{
int inumber;

printf("请输入一个非负整数: ");
scanf("%d",&inumber);
if(isprime(inumber))
printf("%d是素数!\n",inumber);
else
printf("%d不是素数!\n",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以内的素数为:\n",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("\n");
}
}
printf("\n");

return 0;
}

② C语言编程,1到100,求质数,谁能帮帮我啊,网上找的,不完整,看不懂,毫无思路

#include<stdio.h>
#include<math.h>
intf(intn)
{
inti;
//素数标准:只能被自己和1整除的数字
for(i=2;i<=sqrt(n);i++)
{
//能被其他数整除,就不是素数
if(n%i==0)
return0;
}
return1;
}
intmain()
{
inti,k=0;
printf("1至100之间的素数从小到大分别为: ");
for(i=2;i<=100;i++)
{
//依次判断所有数字是否为素数
if(f(i))
{
k++;
printf("%d ",i);
}
}
printf(" 总共%d个。 ",k);
return0;
}

③ C语言求质数问题

#include<stdio.h>

#include<math.h>

intmain()

{

intm,n,c=0,i,t,j;

scanf("%d%d",&m,&n);

if(m==0&&n==0)//<===========

{

return0;

}

elseif(m>n)

{

t=m,m=n,n=t;

}

//else

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

{

for(j=2;j*j<=i;j++)//<============

{

if(i%j==0)

break;

}
if(j*j>i)//<==========

{

printf("%d",i);

c++;

if(c==10)
{

printf(" ");

c=0;
}

}

}



return0;

}

④ c语言求100以内的质数

以我来看我觉得两个for循环都有问题。
首先第一个for循环应该错了。应该是i < 100。因为是求100以内的,所以要循环到100。
这个程序就是利用for循环让i从2遍历到99.然后利用j找出了1和本身之外i的因数。
那么第二个for循环问题就来了,我们寻找i的因数的时候,并不需要从2一直找到i本身,只要找到i的一半就可以停止了。举个简单例子,比如我们要找98的因数,那么我们只需要找到98÷2 = 49就行了,因为49之后的数字是肯定不能整除98的。同理大于i/2之后的数字是肯定不能够整除i的。所以第二个for的条件应该是j <= (i/2)而不是j。下面就简单了。如果j是i的因数,那么i%j=0. 就直接continue(顺便提一句这里是不能用break的,因为break是直接跳出了for循环,相当于直接结束了整个for循环,而此时还没有遍历到100的,应该用continue,continue就是结束当前循环并且执行i++继续下一轮循环)继续循环而不用执行print语句(这个时候代表i不是质数,因为除了1和它本身还有j这个因数。)。同理,如果从2到i/2都没有i的因数,那么就说明i没有其他因数,也就是质数了,所以print输出i。
另外补充一下:
i/j是求i除以j的商,比如11 / 3 = 3; 6 / 3 = 2
i%j是求i除以j的余,比如11 % 3 = 2; 6 % 3 = 0。

⑤ 编程求质数

#include
#include
void
main()
{
int
m,i,k;
scanf("%d",&m);
k=sqrt(m);
for
(i=2;i
if(m%i==0)break;
if(i>k)printf("%d
is
a
prime
number\n",m);
else
printf("%d
is
not
a
prime
number\n",m);
}
此程序判断一个大于等于2的整数是质数还是合数。
要软件10分钟就可以做一个,就是带窗口程序的,不过马上要去实验室了。
再给20分晚上就帮你做。

⑥ c语言求质数

有救!有救!
你的思路挺好的,就是编程的时候思路不清晰,没有周全考虑。
这是改后的代码
#include
"stdio.h"
#include
"conio.h"
main()
{
int
m,n,i,num;
int
p[100];
long
s;
s=2;
m=1;
n=1;
num=1;
p[1]=2
;
for
(;num<100;num++)/*这里的分号应该是你笔误吧O(∩_∩)O*/
{for
(i=1,n=2;;)
/*这里n=2而非m估计也是你笔误?*/
{m=p[i]
;
if
(m>s/2)
break;
else
if(m*n<s)
n++;
else
if(m*n==s)
{s++;i=1;n=2;}/*这里*/
else
if(m*n>s)
{i++;n=2;}/*和这里,仔细想一想,当尝试一个新的数字或尝试一个新的质数时,是不是要把计数变量初始化?*/
/*编程的时候不要想当然,要通盘考虑,每个变量是否都做了妥善的处理*/
}
p[num]=s;/*你要用质数表,怎么能不记录质数表呢^o^*/
printf
("p%d=%ld\n",num,s);
s++;
}
getch();
}
你的程序运用质数表这点很好,但是你的程序还没发挥到最高效率。里边有一些无用的判断和赋值,而且没有利用mod运算,使程序既复杂又低效。
我觉得还是用标准的求质数算法比较好,到处都有,不再说了。

⑦ 如何用编程寻找质数

以下的程序用来寻找n以内的所有质数:

#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 n,i,k=0;

scanf("%d",&n);

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

if(isprime(i))

{ printf("%d ",i);

if(++k%10==0)printf(" ");

}

printf(" ");

return 0;

}

⑧ 输出100以内的质数,用c语言编写

#include <stdio.h>

int main(int argc, char **argv)

{

int x;

for (x=1;x<100;x++){

int i;

int isprime=1;//表示x是素数。

for(i=2;i<x;i++){

if (x%i==0){

isprime=0;

break;

}

}

if (isprime==1){

printf("%d",x);

}

}

return 0;

}

C语言编程计算注意事项:

1、编程时注意符号大小写。

2、main函数要有返回值

3、C语言中定义数组,要定义出大小,数组的大小只能是常量不能是变量。

4、%md ; %0md ;%.mf;(以m位进行右对齐输出,不足m位空格补上;以m位进行右对齐输出。不足m位用0补上;保留m位小数)

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

}

(9)编程求质数扩展阅读:

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。

基本算法:若 k%m==0 则说明 k 不是素数。

判断整数n是否为素数——采用枚举法求解。

采用枚举算法解题的基本思路:

(1)确定枚举对象、枚举范围和判定条件;

(2)枚举可能的解,验证是否是问题的解。

枚举算法的一般结构:while循环。

参考资料来源:网络-枚举法




⑩ 编程求质数

算法:进行双重循环,对于每一个数n,从2开始,直到根号n结束,如果求余结果为0,则跳出第一重循环,反之,如果循环完成还没找到求余为0的,则计数器加一,并输出

热点内容
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:479
php查询结果数组 发布:2025-02-06 12:31:05 浏览:714
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:496
如何编译java文件 发布:2025-02-06 12:05:58 浏览:237
九九乘法编程 发布:2025-02-06 12:05:05 浏览:519
台式机忘记开机密码怎么办 发布:2025-02-06 11:58:01 浏览:871
android刷新按钮 发布:2025-02-06 11:57:17 浏览:586
存储过程有输入参数和输出参数 发布:2025-02-06 11:55:32 浏览:99
成绩评选算法 发布:2025-02-06 11:42:51 浏览:997
数据库测试数据 发布:2025-02-06 11:31:05 浏览:824