qq_38506567 2017-05-20 02:18 采纳率: 0%
浏览 1756

c语言中素数判断问题。。。

#include
#include
void main(){
int m; // 输入的整数
int i; // 循环次数
int k; // m 的平方根

printf("输入一个整数:");
scanf("%d",&m);

// 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类型 
k=(int)sqrt( (double)m );
for(i=2;i<=k;i++)
    if(m%i==0)

if(i>k)
    printf("%d是素数。\n",m);
else
    printf("%d不是素数。\n",m);
printf("%d",i);
return 0;

}

输入25,屏幕上显示25不是素数,但是i=6,不是应该显示25是素数吗,请教一下大家。

  • 写回答

8条回答

  • qq_38855087 2017-05-20 02:38
    关注

    应该是double的强制类型转换出了问题,转换后数值不对什么的,25的确不是素数,素数是说除了1和其本身外没有数可以整

    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题