Ⅰ 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;
}