注册 登录
编程论坛 C语言论坛

求求大佬。不是很会

西瓜瓤 发布于 2022-05-31 19:56, 1408 次点击
编写代码,请设计一个函数fun(),它的功能是:判断x是否是素数。若x是素数,返回1;若不是素数,返回0。x的值由主函数从键盘读入。
9 回复
#2
wp2319572022-05-31 20:36
回复 楼主 西瓜瓤
这是狠基础的题目,所以应该锻炼自己动手的能力
你是不会写函数呢还是不会判断一个数是否是素数
或者干脆连素数是神马也不清楚
还是从键盘接收数据不会??
#3
追梦人zmrghy2022-05-31 21:05
程序代码:
#include <iostream>

using namespace std;

bool sushu(int i)
{
    if(i==1 || i==2)
        return 1;
    for(int j =2; j<=i/2; j++)
    {
        if(i%j == 0)
            return 0;
    }
    return 1;
}

int main()
{
    int x;
    cout<<"请输入一个数,判断是不是素数" << endl;
    cin >> x;
    cout << x;
    if(sushu(x))
        cout<<"是素数" << endl;
    else
        cout<<"不是素数" << endl;
    return 0;
}


只有本站会员才能查看附件,请 登录
#4
追梦人zmrghy2022-05-31 21:07
回复 2楼 wp231957
肝火有点大呀!!!
送你杯菊花茶。。。
#5
西瓜瓤2022-05-31 22:05
回复 2楼 wp231957
本来是函数应用对素数不是很会列数学式子
#include <stdio.h> //""
int main()
{
    int m;
    int i;
    scanf("%d",&m);
    for(i=2;i<=m/2;i++){
        if(m%i==0){
            break;
        }
    }
   
    if(i>m/2){
        printf("%d是素数!\n",m);
    }
    else{
        printf("%d不是素数!\n",m);
    }
   
    return 0;
}
本来是这么想的但是没用到函数
#6
西瓜瓤2022-05-31 22:26
回复 3楼 追梦人zmrghy
谢谢你,但有些用法过于高级,小白还不是很懂打算先写简单一点的写法,谢谢大佬
#7
wp2319572022-06-01 07:43
回复 5楼 西瓜瓤
素数不是这样判断的,要使用标志变量
程序代码:

#include <stdio.h>
int main()
{
    int m;
    int flag=0;
    scanf("%d",&m);
    for(int i=2;i<=m/2;i++){
        if(m%i==0){
            flag=1;
            break;
        }
    }
   
    if(!flag){
        printf("%d是素数!\n",m);
    }
    else{
        printf("%d不是素数!\n",m);
    }
   
    return 0;
}
#8
wp2319572022-06-01 07:46
回复 6楼 西瓜瓤
然后就把主体代码扒出来  单独提到函数里
程序代码:

#include <stdio.h>
int sushu(int m)
{
  int flag=0;
  for(int i=2;i<=m/2;i++)
  {
    if(m%i==0)
    {
        flag=1;
        break;
    }
  }
  return flag;
}

int main()
{
    int m;
    int flag=0;
    scanf("%d",&m);
    flag=sushu(m);
    if(!flag){
        printf("%d是素数!\n",m);
    }
    else{
        printf("%d不是素数!\n",m);
    }
   
    return 0;
}
#9
wp2319572022-06-01 07:48
回复 6楼 西瓜瓤
要是这都算难   那也没啥说得了,以后学到结构体  单链表  双链表    你就找个没人的地方哭吧
#10
do8do8do82022-06-01 08:33
捡个漏~~~~~~~~~~~~~~~~~~
本来是函数应用对素数不是很会列数学式子
#include <stdio.h> //""
int main()
{
    int m;
    int i;
   
    for(i=2;i<=m/2;i++){
        if(m%i==0){
            break;
        }
    }
   
    if(i>m/2){
        printf("%d是素数!\n",m);
    }
    else{
        printf("%d不是素数!\n",m);
    }
   
    return 0;
}
本来是这么想的但是没用到函数------针对此句
--------------
#include <stdio.h> //""
int fun(int m)
{
   
    int i;
    //scanf("%d",&m);
    for(i=2;i<=m/2;i++){
        if(m%i==0){
            break;
        }
    }
   
    if(i>m/2){
       return 1;
       // printf("%d是素数!\n",m);
    }
    else{
       return 0;
       // printf("%d不是素数!\n",m);
    }
   
}
int main()
{
    int m;
    scanf("%d",&m);
    if(fun(m))
      printf("%d是素数!\n",m);
    else
      printf("%d不是素数!\n",m);
   return 0;
}
1