「素因数分解の利用2」の編集履歴(バックアップ)一覧はこちら
素因数分解の利用2 - (2012/11/27 (火) 18:59:05) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
マスターオブ整数論 大学への数学
*問い2-1
3/xが丁度小数点以下3桁となる既約分数は何個あるか?
#include<stdio.h>
int yakusuuCount(int n){
int re=1;
for(int i=2;i*i<=n;i++){
int count=1;
while(n%i==0){
n/=i;
count++;
}
re*=count;
}
if(n!=1)re++;
return re;
}
int calc1(int n,int keta){
return (yakusuuCount(n))*((keta+1)+(keta));
}
int main(){
printf("%d",calc1(3,3));
}
マスターオブ整数論 大学への数学
*問い2-1
3/xが丁度小数点以下3桁となる既約分数は何個あるか?
#include<stdio.h>
int yakusuuCount(int n){
int re=1;
for(int i=2;i*i<=n;i++){
int count=1;
while(n%i==0){
n/=i;
count++;
}
re*=count;
}
if(n!=1)re++;
return re;
}
int calc1(int n,int keta){
return (yakusuuCount(n))*((keta+1)+(keta));
}
int main(){
printf("%d",calc1(3,3));
}
*問い2-2
(384-12m)が自然数となるようなmを全て求めよ。
√(7n)<42となるnの和を全て求めよ。
#include<stdio.h>
#include<math.h>
void calc(int m,int n){
for(int i=1;i*n<m;i++){
int k=sqrt(m-n*i);
if(k*k==m-n*i)printf("%d ",i);
}
}
int calc2(int n,int m){
int re=0;//本当は素因数分解をりようして桁あふれが起きないように計算するのだけどまあ手抜き
for(int i=1;sqrt(n*i)<m;i++){
int k=sqrt(n*i);
if(k*k==n*i&&k<m)re+=i;
}
return re;
}
int main(){
calc(384,12);
printf("\n%d ",calc2(7,42));
}