判断素数
1#include "math.h"2main ()
3{
4int m,i,k;
5scanf("%d",&m);
6 k=sqrt(m);
7 for(i=2;i<=k;i++)
8 if(m%==0) break;
9 if (i>k+1)printf("%d ist Prime\n",m)
0 else printf("%d ist keine\n",m)
1}
各位大大,小弟认为第9行应该改为if (i=k)...才对。或是第7行改为
for(i=2;i<=m;i++),不过影响了运算速度。不过这是老大给的答案,
希望大大们解我疑惑。
还有sqrt本来是double型,强制转型为int型了吗?sqrt(6)等于几?
谢谢!!! 强制转化双精度 为 int sqrt(6) = 2
从1循环到sqrt(m)是最好的方法。 谢
#include<iostream.h>
#include<math.h>
void main(){
long m;
cout<<"please input a number:\n";
cin >>m;
double sqrtm=sqrtm=sqrt(m);
for (int i=2;i<=sqrtm;i++)
if (m%i==0) break;
if(sqrtm<i)count<<"prime.\n";
else cout>>"keine prime";
页:
[1]