用C++求50~100内的素数,具体问题如下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C++求50~100内的素数,具体问题如下相关的知识,希望对你有一定的参考价值。

/*思路:定义一个数为是否素数,在50到100范围内,判断该数能否被1整除与能被s本身整除,是输出,否则不是可是代码还不正确,请问思路哪里有问题呀,我看重的是思路,不是代码,不需要改代码,思路都不正确,给我正确的代码也无用呀。求高手指教思路*/
#include<iostream.h>
#include"stdlib.h"
int main()


int k;
cin>>k;
if(k>50&&k<101)

if((k%1==0)&&(k%k==0))

cout<<"是素数\n"<<k;

else
cout<<"不是素数";

else
cout<<"超出范围";
system("pause");
return 0;

遍历50到100这几个数
对于某个数来说,比如57,再做一次遍历,从2到56(即i-1)的遍历,如果在2到56中间所有数字n都满足57%n!=0,那么说明在2到56间这些数全部都不能被57整除,那么57是素数,事实上,当遍历到3的时候57%3!=0就不满足了,出现了这样不满足的条件就跳出,说明该数(57)不是素数
当2到56中间所有数字都满足那个条件后就输出,这是需要的素数。
参考技术A 你对素数的理解有问题!素数是指只能被自身和1整除的数,能被自身和1以外的数整除的数就不是素数。如下:
for(i==50; i<100; i++)

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

if(i%k == 0)

cout<<"不是素数";
break; //退出本循环

else if(k == i)
cout<<"是素数";

参考技术B if((k%1==0)&&(k%k==0))

cout<<"是素数\n"<<k;

else
cout<<"不是素数";

这个地方错的太严重了,素数的定义是:只能被1与它本身整除的数。而不是只要能被1与它本身整除的数。追问

哦,你的意思是二选一,用或,满足其中一个就是素数,是吗

追答

不是,你应该让k除以1~k,看是不是只能被1和K本身整除。

参考技术C 看看2楼的源代码吧,就是从1计算到K/2,都没有余数时,才是符合条件的。这里只能用反证法证明。用(k%1==0)&&(k%k==0)检验,即是偶数都符合的。 参考技术D #include<stdio.h>
int isprime(int n)

if(n<2) return 0;
for(int i=2;i<n/2;i++)
if(n%i==0) return 0;
return 1;

void main()

int i;
for(i=50;i<=100;i++)
if(isprime(i))
printf("%d ",i);
printf("\n");

求指定整数范围内的素数之和

//求指定整数范围内的素数之和
int getSumResult(int start,int end)
{
int i,j;
int flag=0;
int result=0;

if(start<0||end <0)
{
lr_output_message("开始值、结束值需要为正整数");
exit(-1);
}
else if(start>=end)
{
lr_output_message("开始值需要<结束值");
exit(-1);
}
else
{
for(i=start;i<=end;i++)
{
for(j=2;j<i;j++)
{
if(i%j!=0)
{
flag=0;
continue;
}
else
{
flag=1;
break;
}
}

if(flag==0)
{
if(i!=1)
{
lr_output_message("素数为:%d",i);
result=result+i;
}
}
}
}
//lr_output_message("%d-%d之内的素数之和为:%d",start,end,result);

return result;
}

Action()
{
int i=2,j=6;
int result=0;

result=getSumResult(i,j);

lr_output_message("%d-%d之内的素数之和为:%d",i,j,result);

return 0;
}



















































以上是关于用C++求50~100内的素数,具体问题如下的主要内容,如果未能解决你的问题,请参考以下文章

求50到100以内的质数

用C++编写程序求100以内的所有素数(质素)的和。

c语言中用筛选法求素数

C语言 求2到100内的所有素数和

50~100之间的素数,判断是不是为素数用函数完成

c语言求2到100内的素数