求大于3的素数c语言,c语言判断一个大于3的数是否是素数
#include <stdio.h>
#include <string.h>
#define LEN_SHANG sizeof(struct node_shang)
#define LEN_YUSHU sizeof(struct node_yushu)
struct node_shang {/*商结点*/
char data;
struct node_shang *next;
} *shang_head=0, *shang_tail=0;
struct node_yushu {/*余数结点*/
long data;
struct node_yushu *next;
} *yushu_head=0, *yushu_tail=0;
int shang_empty(void) {/*判断商串是否空*/
return shang_head==0;
}
int yushu_empty(void) {/*判断余数串是否空*/
return yushu_head==0;
}
struct node_shang *new_shang_node(char ch) {/*新建商的结点*/
struct node_shang *ptr= (struct node_shang *) malloc(LEN_SHANG);
ptr->data=ch;
ptr->next=0;
return ptr;
}
struct node_yushu *new_yushu_node(long a) {/*新建余数结点*/
struct node_yushu *ptr= (struct node_yushu *) malloc(LEN_YUSHU);
ptr->data= a;
ptr->next=0;
return ptr;
}
void insert_shang(char ch) {/*插入商字符串的结点*/
struct node_shang *newptr= new_shang_node(ch);
if(shang_empty())
shang_head=shang_tail=newptr;
else {
shang_tail->next= newptr;
shang_tail= newptr;
}
}
void insert_yushu(long a) {/*插入余数结点*/
struct node_yushu *newptr= new_yushu_node(a);
if(yushu_empty())
yushu_head=yushu_tail=newptr;
else {
yushu_tail->next= newptr;
yushu_tail= newptr;
}
}
char *longinttostr(long a, char *str) {/*将长整型转化为字符串*/
char temp;
int i, j;
i=0;
if(a==0) {/*a=0时特别处理*/
str[0]='0';
i++;
} else {
while(a!=0) {
str[i]=(a%10)+'0';
a=a/10;
i++;
}
}
str[i]='\0';
for(j=0; j<=(i-1)/2; j++) {/*倒置*/
temp= str[j];
str[j]= str[i-1-j];
str[i-1-j]= temp;
}
return str;/*返回长度*/
}
long found_xunhuan(void) {/*通过余数是否相等判断是否出现循环节,若出现返回出现位置的指针ind(相对小数点的偏移量),若无反回-1*/
struct node_yushu *i;
long ind;
for(i=yushu_head, ind=0; i->next!=0; i=i->next, ind++)
if(yushu_tail->data==i->data)
return ind;
if(i->next==0)
return -1;
}
void div(long d, long n) {/*d是被除数,n是除数*/
long yushu, shang_zhenshu, temp, i, len_temp;
char str[7];
struct node_shang *j, *new_node;
/*计算整数部分*/
shang_zhenshu= d/n;
d=d%n;
insert_yushu(d);/*余数保存到余数链表*/
longinttostr(shang_zhenshu, str);
i=0;
while(str[i]!='\0') {/*商保存到商链表*/
insert_shang(str[i]);
i++;
}
insert_shang('.');
if(d==0) {/*恰好整除的情况*/
insert_shang('0');
return;
}
while((d!=0)&&((temp=found_xunhuan())==-1)) {/*当除尽或发现循环节时停止*/
d=d*10;/*进位*/
insert_shang((d/n)+'0');
insert_yushu(d%n);
d=d%n;
}
/*除法已完成*/
if(temp!=-1) {/*发现循环节*/
j=shang_head;
while(j->data!='.')/*找到小数点的位置*/
j=j->next;
for(i=0;i<temp; i++)
j=j->next;/*找到循环节开始的前一位*/
new_node= new_shang_node('(');
new_node->next=j->next;
j->next= new_node;
new_node= new_shang_node(')');
shang_tail->next= new_node;
shang_tail= new_node;
}
}
void output(void) {
struct node_shang *i;
long temp;
i=shang_head;
temp=0;
while(i->next!=0) {
putchar(i->data);
i=i->next;
temp++;
if((temp%76)==0)/*每行输出76个字符*/
putchar('\n');
}
putchar(shang_tail->data);
putchar('\n');
}
int main(void) {
long d, n;
scanf("%ld %ld", &d, &n);
while((d<1)||(d>100000)||(n<1)||(n>100000)) {
printf("Input is wrong! Please inpute again!(1<=d, n<=100000)\n");
scanf("%ld %ld", &d, &n);
}
div(d, n);
output();
return 0;
}
求大于3的素数c语言,c语言判断一个大于3的数是否是素数相关推荐
- C语言学习之输入一个大于三的值判断是否为素数
C语言学习之输入一个大于三的值判断是否为素数 方法一 #include <stdio.h> int main(){int number,x; //定义变量printf("请输入一 ...
- c语言给定整数求紧随素数,C语言:找出一个大于给定整数m且紧随m的素数,-求出能整除x且不是偶数的数的个数,...
//函数fun功能:找出一个大于给定整数m且紧随m的素数,并作为函数值返回. #include #include #include int fun( int m) { int i,k; for (i= ...
- 编写一个函数判断一个整数是不是素数c语言,编写函数判断一个整数是否为素数....
#include <stdio.h> #include <math.h> /* 7-5 判断一个整数是否为素数 (15 分) 本题要求编写程序,判断一个给定的整数是否为素数.素 ...
- 判断一个数是否为素数的两种方法:质数又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除,换句话说就是该数除了1和它本身以外不再有其他的因。最小的质数是2。
一,由键盘输入一个数判断是否为素数(设一个数存放变量,将为0的代表非素数,为1的代表为素数) #include <stdio.h> int main() { int i,flag,numb ...
- C++判断一个大于2的整数是否是素数
最近在学习乔林老师的C++教学视频.在算法一节有关于判断素数的内容,感觉挺有收获的,就想着跟大家分享一下.现在,让我们一起来学习吧. 1.面对素数合数检验,我们很容易就联想到暴力穷举的算法. 例如以下 ...
- 编写一个函数判断一个整数是不是素数c语言,编写函数判断一个整数是否为素数...
题目内容: 编写函数int isprime(int a);用来判断整数a是否为素数,若是素数,函数返回1,否则返回0.调用该函数找出任意给定的n个整数中的素数. 注意,1不是素数. 输入格式: 一系列 ...
- 给一个数,判断它是否是素数(质数) 质数:一个大于1的自然数只能被1和它本身整除...
1 方法一: 2 3 x = int(input('--')) 4 flag = False # 假设不是素数or质数,做一个标志位 5 for i in range(2, x): 6 if x % ...
- 用C语言编写:判断一个≥2的整型数是否存在于斐波那契数列中?
自己写的,感觉挺有成就感的,就展示出来吧! 判断一个≥2的整型数是否存在于斐波那契数列中? 若存在,则返回第几项:若不在,则返回-1 #include <stdio.h> long gen ...
- C语言程序设计之判断是否是回文数
给出一个相对可靠的定义: 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数. 例如,若n=1234321,则称n为一回文数:但若n=1234567,则n不是回文数. ...
- c语言如何判断字符不是空格,C语言中如何判断一个字符是空格,下一个字符不是空格...
满意答案 NICaben 2018.11.04 采纳率:53% 等级:12 已帮助:6601人 #include #include int get_word_nums(const char *s ...
最新文章
- 换了路由器电脑都连不上网了_技术丨电脑连不上网,我要如何冲浪?
- error: Microsoft Visual C++ 14.0 is required.(安装scrapy)
- python画画-用python实现你的绘画梦想
- vue前端 html,Vue.js v-html
- NumPy学习笔记(一)
- Java实现单链表的反转
- html中radio,checkbox值的获取、赋值、注册事件
- Python调用微博API获取微博内容
- ActiveMQ常见配置
- Error: Could not link: /usr/local/share/doc/homebrew
- js复杂对象和简单对象的简单转化
- Calendar(显示日期)
- 长文预警-超详细的熊猫烧香病毒分析_00
- winXP系统如何打开剪贴板查看器
- ACM1008玛雅日历
- Pygame库200行代码实现简易飞机大战的小游戏
- 成年人社交中的10个潜规则
- 2021 年最值得推荐的 5 门人工智能编程语言
- Buffon投针实验 · 数学的直观理解 · 基础知识很重要
- 报错:The path is not a valid path to the xxx kernel headers.