一个超级素数的疑问~~~

drizztguai 2008-09-07 08:25:08

#include <stdio.h>
#include <stdlib.h>

int superprime(int a[])
{
int i,j;
int t;
int flag;
int k=0;

for (i=1000;i<=9999;i++){
t=i;
flag=1;
while(t>0){
for(j=2;j<=t;j++){
if(t%j==0){
flag=0;
break;
}
}
t/=10;
}
if(flag){
a[k]=i;
k++;
}
}
return (k-1);
}

int main()
{
int n[20];
int i;
int k;
FILE *out;
k=superprime(n);
for(i=1;i<21;i++){
printf("%6d",n[i-1]);
if(i%6==0)
printf("\n");
}

if( ( out = fopen("myf2.out","w") )==NULL ){
printf("FILE cant be created");
exit(0);
}

for (i=1;i<21;i++){
fprintf(out,"^%6d",n[i-1]);
if(i%6==0)
fprintf(out,"\n");
}
return 0;
fclose(out);
}


为什么输出结果不对呢...

超级素数就是2333 这样的素数 233 23 3都是素数.

还有个疑问
就是利用函数
int prime(int n)
{
int i;
for (i=2;i<=sqrt(n);i++)
if(n%i==0) return 0

return 1;
}

判断是不是素数时候vs2008提示 i和n必须是double或者float

不能调试 不知道vc 6.0存在不存在这个问题?


}
...全文
202 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
phz1985 2008-09-07
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <stdlib.h>

int superprime(int a[])
{
int i,j;
int t;
int flag;
int k=0;

for (i=1000;i<=9999;i++){
t=i;
flag=1;
while(t>0)
{
for(j=2;j<t;j++)//这儿不可取=号。
{
if(t%j==0)
{
flag=0;
break;
}
}
t/=10;
}
if(flag){
a[k]=i;
k++;
}
}
return k;//返回k.
}

int main()
{
int n[20];
int i;
int k;
FILE *out;
k=superprime(n);
for(i=0;i<k;i++){//这儿需修改。
printf("%6d",n[i]);
if((i+1)%6==0)
printf("\n");
}

if( ( out = fopen("myf2.out","w") )==NULL ){
printf("FILE cant be created");
exit(0);
}

for (i=1;i<21;i++){
fprintf(out,"^%6d",n[i-1]);
if(i%6==0)
fprintf(out,"\n");
}
return 0;
fclose(out);
}
lann64 2008-09-07
  • 打赏
  • 举报
回复
superprime使用的算法有问题。
源码直接下载地址: https://pan.quark.cn/s/854bd57df23a 在金融行业中,房产购置贷款是众多人在购置不动产时必须进行的一项财务规划。Matlab作为一种功能强大的数学及数据分析平台,经常被应用于各类复杂的运算,其中包括住房贷款的计算。本文将详细研究运用Matlab开发住房贷款计算程序的相关知识要点,以协助读者掌握如何借助编程技术处理实际的信贷问题。 1. **信贷种类** - **商业信贷**:此类贷款通常由金融机构提供,其利率会随市场行情变化,借款人可选用固定利率或浮动利率方案。 - **公积金信贷**:该类贷款获得政府机构的支持,利率一般低于商业信贷,但设有最高贷款金额的限制。 2. **偿付模式** - **等额本金偿付**:每月支付相同数量的本金,利息部分逐月减少,因此整体还款总额会逐步降低。 - **等额本息偿付**:每月支付固定金额的本金与利息组合,利息部分随本金的逐月减少而递减。 3. **住房贷款计算公式** - **等额本息偿付**:每月还款额=贷款本金×[月利率×(1+月利率)^(贷款期数)]÷[(1+月利率)^(贷款期数)-1]。 - **等额本金偿付**:每月应还本金=贷款总额/贷款期数,每月利息=(贷款余额-累计已还本金)×月利率。 4. **Matlab编程基础** - **变量设定**:在Matlab环境中,首要任务是设定贷款数额、年化利率、贷款时长等核心参数。 - **循环控制结构**:借助for循环来模拟每个还款周期的过程,进行本金与利息的计算。 - **函数构建**:将住房贷款的计算逻辑封装为函数,便于重复使用和测试不同条件下的结果。 5. **Matlab代码编写** - **等额本息函数实现**...

70,040

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧