‘壹’ c语言用指针怎么求前N个素数啊
// 求素数.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
int main(int argc, char* argv[])
{
int i,j,k;
printf("1到100的素数为:\n");
for(i=2;i<=100;i++)
{
k=sqrt(i);
for(j=2;j<=k;j++)
if(i%j==0) break;
if(j>=k+1) printf("%d\t",i);
}
return 0;
}
以上的程序是对的!但是稍稍换了一下,运行后屏幕上就无任何结果!为什么?
// 求素数.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
int main(int argc, char* argv[])
{
int i,j;
printf("1到100的素数为:\n");
for(i=2;i<=100;i++)
{
for(j=2;j<=sqrt(i);j++)
if(i%j==0) break;
if(j>=sqrt(i)+1) printf("%d\t",i);
}
return 0;
}
‘贰’ C语言求100以内素数的问题
#include<stdio.h>
int main()
{
int i=0;
int count=0;
for(i=0;i<=100;i++)
{
int j=0;
for(j=2;j<=i;j++)
{
if(i%j==0)
{
break;
}
}
if(i==j)
{
count++;
printf("%d ",i);
}
}
printf(" count=%d ",count);
return 0;
}
解题思路:
素数,就是除了1和他本身,不能被其他数整除的数字。答案就是用100到200之间的每个数字,除以2到其本身前面的那一个数字,如果此过程中出现整除的现象,则该数不是素数。如果没有整除的现象,则该数为素数输出。
(2)素数计数指针c语言扩展阅读:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数;否则称为合数。
质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了证明常用的方法:反证法。具体证明如下:假设质数只有有限的n个,从小到大依次排列为p1,p2,……,pn,设N=p1×p2×……×pn,那么,要大于p1,p2,……,pn,所以它不在那些假设的素数集合中。
‘叁’ C语言求素数
#include<stdio.h>
#include<math.h>
voidmain()
{
intx=100,d=999,a,i,temp;
for(x;x<=d;x++)
{
temp=0;
a=sqrt(x);
for(i=2;i<=a;i++)
{
if(x%i==0)
{
temp=1;
break;
}
}
if(temp==0)
printf("%d",x);
}
}
‘肆’ C语言利用指针判断素数的个数,这段程序哪有问题
y代表逻辑值,一开始赋值为假(为0),如果找出符合的数据,那么y值就赋值为真(为1或任何非0数字都可以)。这是个逻辑判断来的,假如y值为真,那么就终止循环,输出结果。
d和i就代表两个寻找的目标素数,找到了就送回函数。既然a是一个偶数,a分解为i和d,那么d肯定等于a-i。顺便说一下,这个程序思路是这样的,先递增方法找出奇数i,然后判断i是不是素数,如果不是就继续寻找。如果是,那么就判断a-i是不是素数,如果不是,就继续寻找,如果是,那么就结束循环输出结果。
‘伍’ 用C语言如何判断素数
素数又称质数,所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。
思路1、判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。
思路2、判断方法还可以简化。
m 不必被2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了。如果 m 不能被2~√m间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数。
原因:因为如果m能被2~m-1之间任一整数整除,其二个因子必定有一个小于或等于√m,另一个大于或等于√m。
例如16能被2、4、8整除,16=2*8,2小于 4,8大于4,16=4*4,4=√16,因此只需判定在2~4之间有无因子即可。
两种思路的代码请看解析。
拓展资料:
素数(prime number)又称质数,有无限个。素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
网络——C语言
‘陆’ 求"求素数的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;
}
(6)素数计数指针c语言扩展阅读:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
基本算法:若 k%m==0 则说明 k 不是素数。
判断整数n是否为素数——采用枚举法求解。
采用枚举算法解题的基本思路:
(1)确定枚举对象、枚举范围和判定条件;
(2)枚举可能的解,验证是否是问题的解。
枚举算法的一般结构:while循环。
参考资料来源:网络-枚举法
‘柒’ 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;
}
(7)素数计数指针c语言扩展阅读:
1.素数的定义是只能被1和他本身整除,1不是素数.因此要判断一个数是否为素数.就要判断它能不能被比他小的所有素数整除,这是一个算法.(写到算法时,我只能写出用它除以比他小的所有数,造成运算速度低下)
2.如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。由此可以得到一个法2较快的素数判断算法
‘捌’ C语言编程 统计素数
代码如下:
#include<stdio.h>
voidmain()
{
inti,m,count=0,k1,k2,a[1001];
scanf("%d%d",&k1,&k2);
a[1]=1;
for(i=2;i<=k2;i++)
{
if(a[i]==1)break;
m=2;
while(i*m<=k2)
{
a[i*m]=1;
m++;
}
}
for(i=k1;i<=k2;i++)
if(a[i]!=1)count++;
printf("%d ",count);
for(i=k1;i<=k2;i++)
if(a[i]!=1)printf("%d",i);
printf(" ");
}
这段代码是用筛选法筛出素数,再计算素数的个数,最后输出[k1,k2]间的素数,应该不会超时。
‘玖’ 用C语言如何判断素数
按照如下步骤即可用C语言判断素数:
1、首先打开visual C++ 6.0,然后点击左上角的文件,再点击新建。