Problem description:
source: https://uva.onlinejudge.org/external/101/10127.html
Given any integer 0 ≤ n ≤ 10000 not divisible by 2 or 5, some multiple of n is a number which in decimal notation is a sequence of 1’s. How many digits are in the smallest such a multiple of n?
Input
A fle of integers at one integer per line.
Output
Each output line gives the smallest integer x > 0 such that p = ∑x i=0 -1 1 × 10i = a × b, where a is the corresponding input integer, and b is an integer greater than zero.
Sample Input
37
9901
Sample Output
36
12
Solution:
source: https://uva.onlinejudge.org/external/101/10127.html
Given any integer 0 ≤ n ≤ 10000 not divisible by 2 or 5, some multiple of n is a number which in decimal notation is a sequence of 1’s. How many digits are in the smallest such a multiple of n?
Input
A fle of integers at one integer per line.
Output
Each output line gives the smallest integer x > 0 such that p = ∑x i=0 -1 1 × 10i = a × b, where a is the corresponding input integer, and b is an integer greater than zero.
Sample Input
37
9901
Sample Output
36
12
Solution:
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <fstream>
#include <iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int main()
{
int input,k,one,dividend;
while(scanf("%d",&input)==1)
{
dividend=1;
one=1;
if(input==0)
printf("0\n");
else
{
do{
if(dividend<input)
{
dividend=(dividend*10)+1;
one+=1;
}
k=dividend%input;
if(k!=0)
dividend=k;
}while(k!=0);
printf("%d\n",one);
}
}
return 0;
}
No comments:
Post a Comment
Write your comment - Share Knowledge and Experience