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

素编程求数

发布时间: 2022-10-04 02:56:24

1. 编程求素数,小白求解,急!

把else i=i+1中的else删除,把if(w==1)改为if(w==0),你的代码就OK了,虽然不精巧。

2. c语言编程 求素数 求解释

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{
int m,i,k;
scanf("%d",&m);
k=sqrt(m); //一个数不是素数,那么开平方也一定不是素数。
//将一个数开平方再取整,可以减少比较次数,提高运行效率。

for(i=2;i<=k;i++)//一个一个比较看这个数能不能除尽小于它的所有数
if(m%i==0) //如果可以除尽这个数,那么就跳出循环
break;
if(i>=k+1) //如果i>=k+1 说明一直循环到最后了,中间没有可以除尽的数,这个数就是素数
printf("%d is a prime number\n",m);
else //相反就不是素数
printf("%d is not a prime number\n",m);

system("pause");
}

3. C语言编程求100—1000内的素数个数及和

给你一个超简洁的代码吧: #include<stdio.h>
#include<math.h>
void main(){
int i,k,count=0; /*count用于统计素数个数*/
long sum=0; /*sum存储素数累加和,由于其和超过2^15-1,所以必须用长整形*/ for(i=100;i<=1000;i++){
for(k=2;k<=sqrt(i) && i%k!=0;k++); /*这一步是超简结写法,直接将if判断写入for判断语句中*/
if(k>sqrt(i)){ /*如果k>sqrt(i),说明上面的循环条件都不满足,故i的值就是一个素数*/
count++;
sum+=i;
}
} printf("100~1000之间共有 %d 个素数\n它们的和是:%ld",count,sum);}

4. C语言编程 求素数 求解释

#include
#include
#include
void
main()
{
int
m,i,k;
scanf("%d",&m);
k=sqrt(m);
//一个数不是素数,那么开平方也一定不是素数。
//将一个数开平方再取整,可以减少比较次数,提高运行效率。
for(i=2;i<=k;i++)//一个一个比较看这个数能不能除尽小于它的所有数
if(m%i==0)
//如果可以除尽这个数,那么就跳出循环
break;
if(i>=k+1)
//如果i>=k+1
说明一直循环到最后了,中间没有可以除尽的数,这个数就是素数
printf("%d
is
a
prime
number\n",m);
else
//相反就不是素数
printf("%d
is
not
a
prime
number\n",m);
system("pause");
}

5. c语言编程,求素数的问题

他这样是筛素数
a[i]最初等于2
他把能被2整除的都记为0了
那在以后的运算中
保证a[i]是素数
也就是除一个素数
a[j]等于0
说明他已经被一个素数整除了
已经不是素数了
所以就不用再计算他了
也就是
先筛掉2的倍数
再筛掉3的倍数
再筛掉5的倍数(4被2整除
已经记为0)
再筛掉7的倍数(6被2整除
已经记为0)
再筛掉11的倍数
(8被2整除
9被3整除
10被2整除
都已经被记为0)
。。。。。
最后剩下的就都是素数了
楼主主要注意一下i和j的循环
j的循环是在i的循环里面的,而且他们同是代表数组a的下标
那么当i=2时,是进入j的循环,此时是要将j的循环跑完之后才再进行i++
那么a[j]已经记为0的数,也就是j,i的循环肯定是之后才会循环到
再说明白点,当i=2时,你把j=4的a[j]=0,那么此时的i是2,之后i会自加到4
那么a[i]就是0
如果楼主想不明白
可以把i和j的循环打出来看一下,就像这样
for(i=2;i<sqrt(N);i++)
for(j=i+1;j<N;j++)
{
printf("i=%d
j=%d\n",i,j);
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}

6. c语言编程求素数(也即是质数)

#include <stdio.h>
void main()
{ int x;
int i,f;
f=0;
scanf("%d",&x);
for(i=2;i<x;i++)
if(x%i==0) { f=1; break;}
else {f=0; continue;}
if(f) printf("%d不是素数\n",x);
else printf("%d是素数\n",x);
system("pause");
}

7. 用C语言写出求素数的编程

参考代码:
int main(){
int num,m,n,d,c,priSum;
printf("Enter the Range Between m,n ");
scanf("%d %d", &m,&n);
for (num = n; num <= m; num++)
{
for(d = 2; d < num; d++)
{
if (num % d == 0){
continue;
}
}

if (d == num){
priSum += d;
c++;
}
}
printf("m~n之间的素数个数:%d,和 %d ",c,priSum);
return 0;
}

8. c语言中如何求素数

#include<stdio.h>
#include<math.h>
void main() // 这里不要搞错了,main

{
int i,n;
printf("输入一个整数n");
scanf("%d",&n);
n=abs(n);
if(n>2)
{
for(i=2;i<n;i++)// 在for下面跟个if判断,如果你输入4的话,这个程序打印两次4不是

if(n%i==0&&n==i)
scanf("%d是素数",n); break ;// 这里应该是printf了吧,

else
scanf("%d不是素数",n); break;// 这样会比较好点

}
else
scanf("%d不是素数",n);// 2就不是素数么,

}
这样也有问题,当你输入5的时候,for语句先判断能否整除2,不能整除2的话,就打印不是素数,写个函数是比较好的方法

9. C语言求素数

/*求素数的三种方法
一:for(i=2;i<=(n-1);i++)
if(n%i==0)i在2到n-1之间任取一个数,如果n能被整除则不是素数,否则就是素数
二:for(i=2;i<n/2;i++)
if(n%i==0) /*i在2到n/2之间任取一个数,如果n能被整除则不是素数,否则就是素数

三:for(i=2;i<(n=sqrt(n));i++)
if(n%i==0) /*i在2到sqrt(n)之间任取一个数,如果n能被整除则不是素数,否则就是素数,在下省了下面的输出步骤*/

/*在本程序中使用第三种方法来求解*/
#include <stdio.h>
#include <math.h>
int main(void)
{
int i; /*外循环*/
int j; /*内循环*/
int flag; /*素数标志,flag为1则此数为素数*/
flag = 0;
//int n;
i = 2;
while( i <= 100)
{
j = 2;
flag = 1; /*假设此数为素数*/
while(j <= (int) sqrt(float(i)))
{
if(0 == (i %j))
flag = 0; /*根据第三种算法可知次数不为素数*/
j ++;
}
if(flag)
printf("%d\t",i);
i++;
}
printf("\n");
return 0;
}

10. 编程求素数

我写了个截了个图,主要是让你自己看看,自己敲一敲代码,这样学起来更快,如果直接拷贝就没啥意思了,有问题欢迎讨论!

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:944
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:741
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:372