C语言中求质数过程是怎样的
答案:2 悬赏:80 手机版
解决时间 2021-04-02 21:57
- 提问者网友:浪荡绅士
- 2021-04-02 05:18
C语言中求质数过程是怎样的
最佳答案
- 五星知识达人网友:往事隔山水
- 2021-04-02 05:42
设有数x、y,且想x^2=y;
又有a、b,a>b,a*b=y,那么a>x>b;故只找x底下的值即可知道y有没有因子;
for(i=2;i<=50;i++)
{
for(n=2;n<=(int)sqrt(i);n++)
if(i%n==0) //如果n是i的因子即退出
break;
if(n==(int)sqrt(i)+1) //n==(int)sqrt(i)+1就是在上面循环没找到i的
因子,即i是质数
printf("%d ",i);
}
又有a、b,a>b,a*b=y,那么a>x>b;故只找x底下的值即可知道y有没有因子;
for(i=2;i<=50;i++)
{
for(n=2;n<=(int)sqrt(i);n++)
if(i%n==0) //如果n是i的因子即退出
break;
if(n==(int)sqrt(i)+1) //n==(int)sqrt(i)+1就是在上面循环没找到i的
因子,即i是质数
printf("%d ",i);
}
全部回答
- 1楼网友:愁杀梦里人
- 2021-04-02 05:47
判断一个数是不是素数(就是你说的质数),用下面的方法(筛选法):
从2开始,那么2的倍数就不是素数;
然后是3,那么3的倍数就不是素数;
然后是5(4已经被排除了),那么5的倍数就不是素数。
以此类推。下面给出筛选法的代码(判断10以内的素数有几个,4个)
但是你的那个不是用筛选法,你的是根据素数的定义:一个数,除了他本身和1,其他的数不是他的因子,那么这个数就是素数(1不是啊,从2开始算的)。
比如15不是素数,因为他的因子有1 3 5 15,
比如19是素数,因为他的因子只有1和19。
关于你的那个代码,我写了一个:
#include
int main(void)
{
int i,s,k,count=0;
for(i=100;i<=200;i++)
{
k=sqrt(i);
for(s=2;s<=k;s++)
{
if(i%s==0)break;
}
if(s==k+1)
count++;
}
printf("%d ",count);
for(i=100;i<=200;i++)
{
k=sqrt(i);
for(s=2;s<=k;s++)
{
if(i%s==0)break;
}
if(s==k+1)
printf("%d ",i);
}
return 0;
}
写的这么详细,不采纳我,好伤心。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯