
#include<stdioh>
int main()
{
int m,n,i,count=0;
printf("Input the m,n:");
scanf("%d,%d",&m,&n);
if(m<5)
{
printf("请输入大于5的m值\n");
printf("Input the m,n:");
scanf("%d,%d",&m,&n);
}
printf("The result:\n");
i=2;
while(count<n)
{
if(m%i==0) //m除以2~m-1的数,其中i是累加的,一旦
//有一次整除了,立即使m+=1,重新开始循环
{
m+=1;
i=2;
continue; //结束本次循环
}
else //如果上次未被整除,使i++,继续被m除
{
if(i<m-1)
{
i++;
continue;
}
else //一旦i=m,就说明m是素数
{
printf("%d ",m); //先输出,再初始化整个过程
i=2;
m+=1;
count++; //count计算的是总共找到多少个这样的数了
continue;
}
}
}
printf("\n");
return 0;
}
我是来凑热闹的,把运行结果的图贴上表明我的程序大体上没有错误如果一楼二楼的没错,那么恭喜楼主得到了三种不同的解决方案(楼主还是试着分析楼上的程序吧,不懂的可以试着弄懂)
以下是求n(n由键盘在程序运行时输入)以内所有素数的程序:
#include <iostream>
using namespace std;
int isprime(int n)
{for(int i=2;ii<=n;i++)
if(n%i==0)return 0;
return n>1;
}
int main()
{int n,i;
cin>>n;
for(i=2;i<=n;i++)
if(isprime(i))
cout<<i<<" ";
cout<<endl;
return 0;
}
源代码如下:
#include <stdioh>
#include <mathh>
void main()
{
int n=0, i, j,w,k;
for(i=2;i<=1000; i++)
{
w=1;
k=sqrt(i);
for (j=2; j<=k; j++)
if (i%j==0) {w=0;break;}
if (w) {
++n;
if (n%10==0) printf("%d\n",i);
else printf("%d\t",i);
}
扩展资料
1、素数使用for循环查找2-1000以内的所有素数,循环次数为999次,在for循环中添加一个移位寄存器用以存储所有的素数,其初始值为一个空数组。
2、在循环内部逐个数判断是否为素数,若是素数,则使用"数组插入vi"函数添加到移位寄存器的数组中,否则,移位寄存器中的值保留为上次的值。
以上就是关于简单的C语言:寻找素数全部的内容,包括:简单的C语言:寻找素数、判断素数的c++程序、编写一个程序,输出1~1000之内所有的素数(注意:素数即质数)及个数(C语言)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)