回 帖 发 新 帖 刷新版面

主题:帮忙一下啊!



输入一个数,判断是否为素数。

#include<stdio.h>
#include<math.h>
void main()
{
 int i,w,r,n;
 double m;
 scanf("%d",&n);
  i=2;
  w=0;
  m=sqrt(n);
  while (i<=m||w==0)
  {
    if (n%i==0)
      w=1;
    else
      i=i+1;
   }
    if(w==0)
    printf("%d is sushu",n);
    else
    printf("%d is not sushu",n);
}


请问哪里错了?运行时输入一个数就出不来了。麻烦帮我改改!谢谢了!

回复列表 (共5个回复)

沙发

改成while (i<=m&&w==0)

板凳

#include<stdio.h>
#include<math.h>
void main()
{
 int i,w,n;
 double m;
 scanf("%d",&n);
  i=2;
  w=0;
  m=sqrt(n);
  while (i<=m&&w==0)
  {
    if (n%i==0)
      w=1;
    else
      i=i+1;
   }
    if(w==0)
    printf("%d is sushu",n);
    else
    printf("%d is not sushu",n);
}
这样就行啦

3 楼

谢谢各位了!我明白了。

4 楼

//所谓素数(或称质数)是指除了1和它本身以外,不能被任何整数整除的数
#include <stdio.h>
#include <math.h>

int main()
{
    int m, i, k;
    printf("please enter an integer number: ");
    scanf("%d", &m);
    k = sqrt(m);
    for(i = 2; i <= k; i ++)
        if(m % i == 0) break;
    if(i > k) printf("%d is a prime number.\n", m);
    else printf("%d is not a prime number.\n", m);
}

5 楼

我还没学到for语句,不过还是谢谢你了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册