首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ 关于求 素数的有关问题

2012-10-21 
C++ 关于求 素数的问题#include stdafx.h#includeiostreamusing namespace stdint prime(int n)int

C++ 关于求 素数的问题
#include "stdafx.h"
#include<iostream>
using namespace std;
int prime(int n);
int main()
{
int n;
cout << "Enter a number between 13-100 :" <<endl;
cin >> n;
prime(n);
}

int prime(int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
return 0;
else
return 1;
}
cout << i << endl;
}
}


最近刚开始学C++ 逻辑上还不是很清晰,这个求素数的代码 帮看一下~谢谢了~~

[解决办法]
首先得知道素数的数学定义 然后进行编码
你的可以优化一下
k=sqrt(m);
for(int i=2;i<=k;i++)
{ if(m%i==0)
break;
}
if(i>k)
是sushu
else
不是素数
[解决办法]
试模法效率不高,但可以从这几个地方调整

1.先判断奇偶性,大于2且为偶数的肯定不是素数了,奇偶判断只要做一次& 1即可

2.试模上界用数的平方根
[解决办法]

C/C++ code
bool isPrime(unsigned int n){        unsigned int i = 2;        while(i < n && (n % i))        {             ++i;        }        return  i == n;} 

热点排行